Use-Transaction
將腳本區塊新增至使用中交易。
語法
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
Description
Cmdlet 會將 Use-Transaction
腳本區塊新增至使用中交易。 這可讓您使用已啟用交易的 Microsoft .NET Framework 物件來執行交易式腳本。 腳本區塊只能包含已啟用交易的 .NET Framework 物件,例如 Microsoft.PowerShell.Commands.Management.TransactedString 類別的實例。
當您使用此 Cmdlet 時,需要使用 UseTransaction 參數,這是大部分 Cmdlet 的選擇性參數。
Use-Transaction
是一組 Cmdlet,可支援 Windows PowerShell 中的交易功能。 如需詳細資訊,請參閱 about_Transactions。
範例
範例 1:使用已啟用交易的物件編寫腳本
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
$transactedString.ToString()
Hello
Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
Complete-Transaction
$transactedString.ToString()
Hello, World
此範例示範如何使用 Use-Transaction
來針對已啟用交易的 .NET Framework 物件編寫腳本。 在此情況下,物件是 TransactedString 物件。
第一個命令會 Start-Transaction
使用 Cmdlet 來啟動交易。
第二個 命令會使用 New-Object 命令來建立 TransactedString 物件。 它會將物件儲存在變數中 $TransactedString
。
第三個和第四個命令都使用 TransactedString 物件的 Append 方法,將文字新增至 的值$TransactedString
。 其中一個命令是交易的一部分。 另一個指令不是 。
第三個命令會使用 交易字串的 Append 方法,將 Hello 新增至 的值 $TransactedString
。 因為命令不是交易的一部分,因此會立即套用變更。
第四個命令會使用 Use-Transaction
將文字新增至交易中的字串。 此命令會 使用 Append 方法將 “, World” 新增至 的值 $TransactedString
。 命令會以大括弧 ({}
) 括住,使其成為腳本區塊。 此命令中需要UseTransaction 參數。
第五和第六個命令會使用 TransactedString 物件的 ToString 方法,將 TransactedString 的值顯示為字串。 同樣地,一個命令是交易的一部分。 另一個交易不是。
第五個命令會 使用 ToString 方法來顯示$TransactedString變數的目前值。 因為它不是交易的一部分,所以只會顯示字串的目前狀態。
第六個命令會使用 Use-Transaction
在交易中執行相同的命令。 因為命令是交易的一部分,所以它會在交易中顯示字串的目前值,這與交易變更的預覽非常類似。
第七個命令會 Complete-Transaction
使用 Cmdlet 來認可交易。
最後一個命令會 使用 ToString 方法,將變數的結果值顯示為字串。
範例 2:回復交易
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
Undo-Transaction
$transactedString.ToString()
Hello
此範例顯示復原包含 Use-Transaction
命令的交易效果。 就像交易中的所有命令一樣,當交易回復時,交易變更會捨棄,且數據不會變更。
第一個命令會使用 Start-Transaction
來啟動交易。
第二個命令會使用 New-Object
來建立 TransactedString 物件。 它會將物件儲存在變數中 $TransactedString
。
第三個命令不是交易的一部分,會使用 Append 方法將 「Hello」 新增至 的值 $TransactedString
。
第四個命令會使用 Use-Transaction
來執行另一個命令,以在 交易中使用Append 方法。 此命令會 使用 Append 方法將 “, World” 新增至 的值 $TransactedString
。
第五個命令會使用 Undo-Transaction Cmdlet 來回復交易。 因此,交易中執行的所有命令都會反轉。
最後一個命令會 使用 ToString 方法,將產生的值 $TransactedString
顯示為字串。 結果顯示只會將交易外部所做的變更套用至 物件。
參數
-TransactedScript
指定在交易中執行的腳本區塊。 輸入任何以大括弧括住的有效腳本區塊 ({}
)。 此為必要參數。
類型: | ScriptBlock |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-UseTransaction
在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_transactions。
類型: | SwitchParameter |
別名: | usetx |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將輸入傳送至此 Cmdlet。
輸出
PSObject
此 Cmdlet 會傳回交易的結果。
備註
- UseTransaction 參數會在使用中交易中包含 命令。
Use-Transaction
因為 Cmdlet 一律用於交易中,因此這個參數必須讓任何Use-Transaction
命令生效。