Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0
РАЗДЕЛ
about_Script_Blocks
КРАТКОЕ ОПИСАНИЕ
Определение блока сценария и описание использования блоков сценариев на языке программирования Windows PowerShell®.
ПОДРОБНОЕ ОПИСАНИЕ
На языке программирования Windows PowerShell блок сценария представляет собой набор операторов или выражений, которые могут использоваться как единое целое. Блок сценария может принимать аргументы и возвращать значения.
Синтаксически блок сценария является списком операторов в скобках, как показано в следующем синтаксисе.
{<statement list>}
Блок сценария возвращает выходные данные всех команд в блоке сценария как один объект или как массив.
Как и функции, блок сценария может содержать параметры. С помощью ключевого слова Param можно назначать именованные параметры, как показано в следующем синтаксисе.
{
param ([type]$parameter1 [,[type]$parameter2])
<statement list>
}
В отличие от функции в блоке сценария нельзя указывать параметры вне фигурных скобок.
Как и функции, блоки сценариев могут содержать ключевые слова DynamicParam, Begin, Process и End. Дополнительные сведения см. в разделах about_Functions и about_Functions_Advanced.
Использование блоков сценариев
Блок сценария — это экземпляр типа Microsoft .NET Framework (System.Management.Automation.ScriptBlock). Команды могут иметь значения параметров блока сценария. Например, командлет Invoke-Command имеет параметр ScriptBlock, который принимает значение блока сценария, как показано в следующем примере.
C:\PS> invoke-command -scriptblock { get-process }
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
999 28 39100 45020 262 15.88 1844 communicator
721 28 32696 36536 222 20.84 4028 explorer
. . .
Блок сценария, который используется как значение, может быть более сложным, как показано в следующем примере.
C:\PS> invoke-command -scriptblock { param ($uu = "Parameter");
"$uu assigned." }
Parameter assigned.
Блок сценария в предыдущем примере использует ключевое слово Param для создания параметра, имеющего значение по умолчанию. В следующем примере используется параметр Args командлета Invoke-Command для назначения параметру другого значения.
C:\PS> invoke-command -scriptblock {param ($uu = "Parameter");
"$uu assigned."} -args "Other value"
Other value assigned.
Блок сценария можно назначить переменной, как показано в следующем примере.
C:\PS> $a = {param ($uu = "Parameter"); "$uu assigned."}
Переменную можно использовать с командлетом, например Invoke-Command, как показано в следующем примере.
C:\PS> invoke-command -scriptblock $a -args "Other value"
Other value assigned.
Можно запустить блок сценария, который назначен переменной, с помощью оператора вызова (&), как показано в следующем примере.
C:\PS> &$a
Parameter assigned.
Можно также указать параметр в блоке сценария, как показано в следующем примере.
C:\PS> &$a "Other value"
Other value assigned.
Если переменной нужно назначить значение, которое создается в блоке сценария, используйте оператор вызова для прямого запуска блока сценария, как показано в следующем примере:
C:\PS> $a = &{param ($uu = "Parameter"); "$uu assigned."}
C:\PS> $a
Parameter assigned.
Дополнительные сведения об операторе вызова см. в разделе about_Operators.
СМ. ТАКЖЕ
about_Functions
about_Functions_Advanced
about_Operators