Use-Transaction
將腳本區塊新增至使用中交易。
語法
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
Description
Use-Transaction Cmdlet 會將腳本區塊新增至使用中交易。 這可讓您使用已啟用交易的 Microsoft .NET Framework 物件來執行交易式腳本。 腳本區塊只能包含已啟用交易的 .NET Framework 物件,例如 Microsoft.PowerShell.Commands.Management.TransactedString 類別的實例。
當您使用此 Cmdlet 時,需要 UseTransaction 參數,這是大多數 Cmdlet 的選擇性參數。
Use-Transaction 是一組支援 Windows PowerShell 中交易功能的 Cmdlet。 如需詳細資訊,請參閱 about_Transactions。
範例
範例 1:使用已啟用交易的物件編寫腳本
PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> $transactedString.ToString()
Hello
PS C:\> Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
PS C:\> Complete-Transaction
PS C:\> $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 參數。
第五和第六個命令會使用
第五個命令會使用 ToString 方法來顯示$TransactedString變數的目前值。 因為它不是交易的一部分,所以只會顯示字串的目前狀態。
第六個命令會使用 Use-Transaction,在交易中執行相同的命令。 因為命令是交易的一部分,所以它會在交易中顯示字串的目前值,這與交易變更的預覽非常類似。
第七個命令會使用 Complete-Transaction Cmdlet 來認可交易。
最後一個命令會使用 ToString 方法,將變數的結果值顯示為字串。
範例 2:回復交易
PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> Undo-Transaction
PS C:\> $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 命令生效。