Use-Transaction
Добавляет блок сценариев в активную транзакцию.
Синтаксис
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
Описание
Командлет Use-Transaction
добавляет блок скрипта в активную транзакцию. Это позволяет выполнять транзакции скриптов с помощью объектов Microsoft .NET Framework с поддержкой транзакций. Блок скрипта может содержать только объекты с поддержкой транзакций платформа .NET Framework, например экземпляры класса Microsoft.PowerShell.Commands.Management.TransactedString.
Параметр UseTransaction, необязательный для большинства командлетов, является обязательным при использовании этого командлета.
Use-Transaction
— это один из наборов командлетов, поддерживающих функцию транзакций в 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
командлет для запуска транзакции.
Вторая команда с помощью командлета New-Object создает объект TransactedString. Он сохраняет объект в переменной $TransactedString
.
Третий и четвертый команды используют метод Add объекта TransactedString для добавления текста в значение$TransactedString
. Одна команда входит в транзакцию, а вторая — нет.
Третья команда использует метод add of the transacted string, чтобы добавить Hello к значению $TransactedString
. Так как команда не является частью транзакции, изменение вступает в силу немедленно.
Четвертая команда используется Use-Transaction
для добавления текста в строку в транзакции. Команда использует метод Add для добавления ", World" в значение $TransactedString
. Команда заключена в фигурные скобки ({}
), чтобы сделать его блоком скрипта. Параметр UseTransaction обязателен в этой команде.
Пятая и шестая команды используют метод ToString объекта TransactedString для отображения значения TransactedString в качестве строки. И снова одна команда входит в транзакцию, а вторая — нет.
Пятая команда использует метод ToString для отображения текущего значения переменной $TransactedString. Так как она не является частью транзакции, то отображает только текущее состояние строки.
Шестая команда используется Use-Transaction
для выполнения той же команды в транзакции. Так как команда не является частью, она отображает текущее значение строки внутри транзакции, так же, как предварительную версию изменений транзакции.
Седьмая команда использует Complete-Transaction
командлет для фиксации транзакции.
Последняя команда использует метод 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
.
Третья команда, которая не является частью транзакции, использует метод Add для добавления "Hello" в значение $TransactedString
.
Четвертая команда используется для выполнения другой команды, которая использует Use-Transaction
метод Append в транзакции. Команда использует метод Add для добавления ", World" в значение $TransactedString
.
Пятая команда использует командлет Undo-Transaction для отката транзакции. В результате все команды, выполненные в рамках транзакции, отменяются.
Последняя команда использует метод ToString для отображения результирующего значения $TransactedString
в виде строки. Из результатов видно, что к объекту применены только изменения, внесенные за рамками транзакции.
Параметры
-TransactedScript
Указывает блок сценариев, выполняемых в транзакции. Введите любой допустимый блок скрипта, заключенный в фигурные скобки ({}
). Этот параметр является обязательным.
Тип: | ScriptBlock |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-UseTransaction
Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в about_transactions.
Тип: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
В этот командлет нельзя передать входные данные.
Выходные данные
PSObject
Этот командлет возвращает результат транзакции.
Примечания
- Параметр Use-Transaction включает команду в активную транзакцию.
Use-Transaction
Так как командлет всегда используется в транзакциях, этот параметр необходим для эффективного выполнения любойUse-Transaction
команды.
Связанные ссылки
PowerShell