Поделиться через


about_Script_Blocks

Назначение: 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