共用方式為


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 參數。

第五和第六個命令會使用 TransactedString 物件的 ToString 方法,將 TransactedString 的值顯示為字符串。 同樣地,一個命令是交易的一部分。 另一個交易不是。

第五個命令會使用 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 命令生效。