Use-Transaction

將腳本區塊新增至使用中交易。

Syntax

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

指定在交易中執行的腳本區塊。 輸入任何以大括弧括住的有效腳本區塊 ({})。 此為必要參數。

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_transactions

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

您無法使用管線將輸入傳送至此 Cmdlet。

輸出

PSObject

此 Cmdlet 會傳回交易的結果。

備註

  • UseTransaction 參數會在使用中交易中包含 命令。 Use-Transaction因為 Cmdlet 一律用於交易中,因此這個參數必須讓任何Use-Transaction命令生效。