將指令碼區塊新增到現用交易。

語法

Use-Transaction [-TransactedScript] <scriptblock> [-UseTransaction] [<CommonParameters>]

描述

Use-Transaction Cmdlet 會將指令碼區塊新增到現用交易。這可以讓您使用啟用交易的 Microsoft .NET Framework 物件,進行交易的指令碼撰寫。指令碼區塊只能包含啟用交易的 .NET Framework 物件,例如 Microsoft.PowerShell.Commands.Management.TransactedString 類別的執行個體。

對大部分 Cmdlet 而言為選擇性項目的 UseTransaction 參數,在使用這個 Cmdlet 時,則為必要項目。

在支援 Windows PowerShell 交易功能的一組 Cmdlet 集中,Use-Transaction Cmdlet 是其中一項。如需詳細資訊,請參閱 about_Transactions。

參數

-TransactedScript <scriptblock>

指定在交易中執行的指令碼區塊。輸入任一有效的指令碼區塊,並以大括號 ( { } ) 括住。此參數為必要項。

必要?

true

位置?

1

預設值

接受管線輸入?

false

接受萬用字元?

false

-UseTransaction

將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

您無法經由管道將輸入輸出至這個 Cmdlet。

輸出

PSObject

Use-Transaction 會傳回交易的結果。

附註

Use-Transaction 參數包含現用交易的命令。因為交易中一定會使用 Use-Transaction Cmdlet,所以必須使用這個參數,才能讓 Use-Transaction 命令發生作用。

範例 1

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> $transactedString.ToString()
Hello
 
C:\PS> use-transaction -transactedScript { $transactedString.ToString() } -UseTransaction
Hello, World

C:\PS> complete-transaction
C:\PS> $transactedString.ToString()
Hello, World

描述
-----------
本範例示範如何使用 Use-Transaction Cmdlet,根據啟用交易的 .NET Framework 物件撰寫指令碼。在這個案例中,會使用 TransactedString 物件。

第一個命令會使用 Start-Transaction Cmdlet 啟動交易。

第二個命令會使用 New-Object 命令建立 TransactedString 物件,然後將該物件儲存在 $TransactedString 變數中。

第三個與第四個命令都會使用 TransactedString 物件的 Append 方法,將文字新增到 $TransactedString 的值。其中一個命令屬於交易的一部分,另一個則不是。

第三個命令會使用已交易字串的 Append 方法,將 "Hello" 加入至 $TransactedString 的值。因為該命令不屬於交易的一部分,所以會立即套用變更。

第四個命令會使用 Use-Transaction Cmdlet,將文字加入至交易內的字串。該命令使用 Append 方法,將 ", World" 新增到 $TransactedString 的值。放在大括號 ( {} ) 內的命令會成為指令碼區塊。在這個命令中,UseTransaction 參數為必要參數。

第五個與第六個命令使用 TransactedString 物件的 ToString 方法,以字串顯示的 TransactedString 的值。同樣的,其中一個命令屬於交易的一部分,另一個則不是。

第五個命令使用 ToString 方法,顯示 $TransactedString 變數的目前值。因為它不屬於交易的一部分,所以只會顯示字串目前狀態。

第六個命令會使用 Use-Transaction Cmdlet,在交易內執行相同的命令。因為該命令屬於交易的一部分,所以它會顯示交易內字串的目前值,與預覽交易變更很類似。

第七個命令使用 Complete-Transaction Cmdlet 認可交易。

最後一個命令使用 ToString 方法,以字串顯示變數產生的值。






範例 2

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> undo-transaction

C:\PS> $transactedString.ToString()
Hello

描述
-----------
本範例示範復原包含 Use-Transaction 命令之交易的作用。如同交易中的所有交命令,復原交易時,會捨棄已交易的變更且資料不會變更。

第一個命令會使用 Start-Transaction Cmdlet 啟動交易。

第二個命令會使用 New-Object 命令建立 TransactedString 物件,然後將該物件儲存在 $TransactedString 變數中。

第三個命令 (不屬於交易的一部分) 會使用 Append 方法,將 "Hello" 加入至 $TransactedString 的值。

第四個命令會使用 Use-Transaction Cmdlet,在交易內執行使用 Append 方法的另一個命令。該命令使用 Append 方法,將 ", World" 新增到 $TransactedString 的值。

第五個命令使用 Undo-Transaction Cmdlet 復原交易。因此,會保留而不進行於交易內執行的所有命令。

最後一個命令使用 ToString 方法,以字串顯示 $TransactedString 產生的值。這些結果顯示只會套用在交易之外所進行的變更。






請參閱




目錄