РАЗДЕЛ 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 задана." } Параметр задан. В предыдущем примере блок скрипта использует ключевое слово Param для создания параметра со значением по умолчанию. В следующем примере параметр Args командлета Invoke-Command используется для назначения другого значения параметру: C:\PS> invoke-command -scriptblock {param ($uu = "Parameter"); "$uu задана."} -args "Другое значение" Другое значение задано. Блок скрипта можно назначить переменной, как показано в следующем примере. C:\PS> $a = {param ($uu = "Parameter"); "$uu задана."} Переменную можно использовать с командлетами, например, с Invoke-Command, как показано в следующем примере: C:\PS> invoke-command -scriptblock $a -args "Другое значение" Другое значение задано. Запустить блок скрипта, назначенного переменной, можно с помощью оператора вызова (&), как показано в следующем примере: C:\PS> &$a Параметр задан. Для блока скрипта можно также задать параметр, как показано в следующем примере: C:\PS> &$a "Другое значение" Другое значение задано. Чтобы назначить переменной значение, создаваемое блоком скрипта, нужно использовать оператор вызова для непосредственног о запуска блока скрипта, как показано в следующем примере: C:\PS> $a = &{param ($uu = "Parameter"); "$uu задана."} C:\PS> $a Параметр задан. Дополнительные сведения об операторе вызова см.в разделе about_Operators. СМ. ТАКЖЕ about_Functions about_Functions_Advanced about_Operators