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