РАЗДЕЛ
    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





Содержание