РАЗДЕЛ
	about_Automatic_Variables

КРАТКОЕ ОПИСАНИЕ
	Описание переменных, в которых хранятся сведения о состоянии оболочки 
	Windows PowerShell.
	Эти переменные создаются и обрабатываются оболочкой Windows PowerShell.


ПОЛНОЕ ОПИСАНИЕ
	Ниже представлен список автоматических переменных Windows PowerShell.


	$$
	 Содержит последний токен последней строки, полученной сеансом.


	$? 
	 Содержит состояние выполнения последней операции. TRUE, если 
	 последняя операция завершилась успешно, FALSE, если она 
	 завершилась с ошибкой.

	$^
	 Содержит первый токен последней строки, полученной сеансом.

	$_
	 Содержит текущий объект в объекте конвейера. Эту переменную можно 
	 использовать в командах, которые должны выполнять действие с каждым 
объектом или с выбранными объектами в конвейере.

	$Args
	 Содержит массив необъявленных параметров и (или) значений 
	 параметров, которые передаются функции, скрипту или блоку скрипта.
	 При создании функции можно объявить параметры с помощью 
	 ключевого слова param или путем добавления списка параметров, 
	 разделенных запятыми, в скобках после имени функции.

	$ConsoleFileName
	 Содержит путь к файлу консоли (PSC1), использовавшемуся в 
	 рамках сеанса последним. Значение этой переменной 
	 устанавливается при запуске Windows PowerShell с параметром 
	 PSConsoleFile или при использовании командлета Export-Console 
	 для экспорта имен оснасток в файл консоли. 

	 При использовании командлета Export-Console без параметров он 
	 автоматически обновляет файл консоли, который использовался во время 
	 текущего сеанса последним. Это автоматическую переменную можно 
	 использовать для определения, какой файл будет обновляться.

	$Error
	 Содержит массив объектов ошибок, представляющих последние 
	 обнаруженные ошибки. Последняя ошибка - первый объект ошибки в 
	 массиве ($Error[0]).

	$Event 
	 Содержит объект PSEventArgs, представляющий обрабатываемое событие.
	 Эта переменная заполняется только в пределах блока Action команды 
	 регистрации события, например Register-ObjectEvent. Значением этой 
	 переменной всегда является объект, возвращаемый командлетом Get-Event. 
	 Следовательно, в блоке скрипта Action можно использовать свойства 
	 переменной $Event, например $Event.TimeGenerated. 

	$EventSubscriber 
	 Содержит объект PSEventSubscriber, представляющий подписчик на 
	 обрабатываемое событие. Эта переменная заполняется только в пределах 
	 блока Action команды регистрации события. Значением этой переменной 
	 всегда является объект, возвращаемый командлетом Get-EventSubscriber.  

	$ExecutionContext
	 Содержит объект EngineIntrinsics, который представляет контекст 
	 выполнения основного приложения Windows PowerShell. Эту переменную можно 
	 использовать для поиска объектов выполнения, доступных командлетам.

	$False
	 Содержит FALSE. Эту переменную можно использовать вместо 
	 строки "false" для представления значения FALSE в командах и 
	 скриптах. Строка может интерпретироваться как TRUE при 
	 преобразовании в непустую строку или целое число, отличное от нуля.

	$ForEach
	 Содержит перечислитель цикла ForEach-Object. Значение 
	 переменной $ForEach позволяет использовать свойства и методы 
	 перечислителей. Эта переменная существует только до тех пор, пока 
	 выполняется цикл For. После окончания цикла переменная удаляется.

	$Home
	 Содержит полный путь к домашнему каталогу пользователя. Эта 
	 переменная эквивалентна сочетанию переменных среды 
	 %homedrive%%homepath%, обычно C:\Documents and Settings\<пользо
	 ватель>.

	$Host
	 Содержит объект, представляющий текущее основное приложение Windows 
	 PowerShell. Эту переменную можно использовать для представления текущего 
	 основного приложения в командах либо для отображения или изменения 
	 свойств основного приложения, например $Host.version, 
	 $Host.CurrentCulture или $host.ui.rawui.setbackgroundcolor("Red").

	$Input
	 Перечислитель, содержащий переданные функции входные данные. 
	 Переменная $Input обрабатывается с учетом регистра, она 
	 доступна только в функциях и блоках скрипта. (Блоки скрипта - это 
	 неименованные функции.) В блоке Process функции в переменной $Input 
	 содержится объект, который в настоящее время находится в конвейере. 
	 По завершении обработки блока Process для переменной $Input устанавливается 
	 значение NULL. Если в функции нет блока Process, значение переменной 
	 $Input доступно до блока End, при этом в переменной хранятся все 
	 входные данные, переданные функции.

	$LastExitCode
	 Содержит код завершения последней выполненной программы Windows.

	$Matches
	 Переменная $Matches используется при работе с операторами 
	 совпадения -match и -notmatch.
	 Если входные данные оператора -match или -nomatch являются 
	 скаляром и любой из операторов обнаруживает совпадение, эти 
	 операторы возвращают логическое значение и устанавливают в качестве 
	 значения автоматической переменной $Match хэш-таблицу, в которую 
	 заносятся все совпавшие строковые значения. Дополнительные сведения 
	 об операторе -match см.в разделе about_comparison_operators.

	$MyInvocation
	 Содержит объект со сведениями о текущей команде, включая 
	 скрипт, функцию или блок скрипта. Сведения в объекте, например 
	 путь и имя файла скрипта ($myinvocation.mycommand.path) или 
	 имя функции ($myinvocation.mycommand.name) можно использовать для 
	 идентификации текущей команды. Это особенно полезно при определении имени 
	 выполняемого скрипта.

	$NestedPromptLevel
	 Содержит текущий уровень обработки. Значение 0 указывает на 
	 изначальный уровень запроса. Значение увеличивается на единицу при 
	 запуске вложенного уровня обработки и уменьшается на единицу при 
	 завершении уровня.

	 Например, Windows PowerShell представляет вложенный уровень 
	 обработки при использовании метода $Host.EnterNestedPrompt. Windows 
	 PowerShell также представляет вложенный уровень обработки при 
	 достижении точки останова в отладчике Windows PowerShell.

	 При запуске вложенного уровня обработки Windows PowerShell 
	 приостанавливает выполнение текущей команды, сохраняет контекст 
	 выполнения и увеличивает на единицу значение переменной 
	 $NestedPromptLevel. Для создания дополнительных уровней вложенной 
	 обработки (до 128 уровней) или для возврата на изначальный уровень 
	 обработки завершите выполнение команды или введите команду "exit". 

	 Переменная $NestedPromptLevel позволяет контролировать уровень 
	 вложенности. Также можно создать альтернативную командную строку Windows 
	 PowerShell, которая включает это значение для обеспечения постоянного 
	 контроля уровня вложенности.

	$NULL
	 Содержит константу NULL или пустое значение. Эту переменную можно 
	 использовать вместо строки "NULL" для представления значения NULL в 
	 командах и скриптах. Строка может интерпретироваться как TRUE при 
	 преобразовании в непустую строку или целое число, отличное от нуля.

	$PID
	 Содержит идентификатор процесса (PID) процесса, в рамках которого 
	 выполняется текущий сеанс Windows PowerShell.
  
	$Profile
	 Содержит полный путь к профилю Windows PowerShell текущего 
	 пользователя и текущего основного приложения. Эту переменную можно 
	 использовать для представления профиля в командах. Например, чтобы 
	 определить, был ли создан профиль, можно ввести следующую команду:

		 test-path $profile

	 Также можно использовать эту переменную в команде для создания 
	 профиля.

		 new-item -type file -path $pshome -force

	 Кроме того, эту переменную можно использовать в команде для 
	 открытия профиля в Блокноте:

		 notepad $profile

	$PSBoundParameters
	 Содержит словарь активных параметров и их текущих значений. 
	 Значение этой переменной действительно только в области объявления 
	 параметров, включая скрипт или функцию. Можно использовать эту 
	 переменную для отображения или изменения текущий значений параметров 
	 или для передачи значений параметров другому скрипту или функции.

	 Пример:

		 function test {
			param($a, $b)
		
			# Отображение параметров в формате словаря.
			$psboundparameters
			 
			# Вызов функции Test1 с $a и $b.
			test1 @psboundparameters   
		 }

	$PsCmdlet
	 Содержит объект, представляющий выполняемый командлет или 
	 расширенную функцию. 

	 Свойства и методы объекта могут использоваться в коде 
	 командлета или функции для обработки условий использования. 
	 Например, в свойстве ParameterSetName содержится имя 
	 используемого набора параметров, а метод ShouldProcess динамически 
	 добавляет к командлету параметры WhatIf и Confirm.

	 Дополнительные сведения об автоматической переменной $PSCmdlet см.в 
	 разделе about_Functions_Advanced.

	$PsCulture
	 Содержит имя культуры, используемой в настоящее время в 
	 операционной системе. Культура определяет формат отображения таких 
	 элементов, как числа, денежные величины и даты. Это значение свойства 
	 системы System.Globalization.CultureInfo.CurrentCulture.Name. Для 
	 получения объекта System.Globalization.CultureInfo системы 
	 используйте командлет Get-Culture.

	$PSDebugContext
	 В процессе отладки в этой переменной хранятся сведения о среде 
	 отладки. В противном случае переменная содержит значение NULL. 
	 Таким образом, эта переменная может использоваться для 
	 проверки, идет ли отладка. Если значение переменной определено, она 
	 содержит объект PsDebugContext, у которого есть свойства Breakpoints и 
	 InvocationInfo. У свойства InvocationInfo есть несколько полезных 
	 свойств, включая свойство Location. В свойстве Location содержится 
	 путь к отлаживаемому скрипту.


	$PsHome
	 Содержит полный путь к каталогу установки Windows PowerShell, 
	 обычно это %windir%\System32\WindowsPowerShell\v1.0. Эту 
	 переменную можно использовать при формировании путей к файлам 
	 Windows PowerShell. Например, следующая команда выполняет 
	 поиск слова "variable" в концептуальных разделах справки: 

			select-string -pattern variable -path $pshome\*.txt

	$PSScriptRoot
	 Содержит каталог, из которого выполняется модуль скрипта.
	 Эта переменная позволяет скриптам использовать путь к модулю 
	 для доступа к другим ресурсам.


	$PsUICulture
	 Содержит имя культуры пользовательского интерфейса, используемой в 
	 настоящее время в операционной системе. Культура пользовательского 
	 интерфейса определяет строки, которые используются в качестве элементов 
	 пользовательского интерфейса, например меню и сообщений. Это значение 
	 свойства системы System.Globalization.CultureInfo.CurrentUICult
	 ure.Name. Для получения объекта System.Globalization.CultureInf
	 o системы используйте командлет Get-UICulture. 


	$PsVersionTable
		Содержит доступную только для чтения хэш-таблицу, в которой 
		представлены сведения о версии Windows PowerShell, используемой в 
		текущем сеансе.
		В таблице содержатся следующие элементы.

			CLRVersion.			Версия среды CLR (общеязыковая среда 
			выполнения).

			BuildVersion.		Номер построения текущей версии.

			PSVersion.			 Номер версии Windows PowerShell.

			WSManStackVersion.	 Номер версии стека WS-Management.

			PSCompatibleVersions.  Версии Windows PowerShell, совместимые с 
			текущей версией.

			SerializationVersion.  Версия метода сериализации.

			PSRemotingProtocolVersion
								 Версия протокола удаленного управления 
								 Windows PowerShell.

	$Pwd
	 Содержит объект пути, представляющий полный путь к текущему 
	 каталогу. 

	$Sender 
	 Содержит объект, создавший данное событие. Эта переменная заполняется 
	 только в пределах блока Action команды регистрации события. Значение 
	 этой переменной также можно определить с помощью свойства Sender 
	 объекта PSEventArgs (System.Management.Automation.PSEventArgs), 
	 возвращаемого командлетом Get-Event. 

	$ShellID
	 Содержит идентификатор текущей оболочки.

	$SourceArgs 
	 Содержит объекты, представляющие аргументы обрабатываемого события. 
	 Эта переменная заполняется только в пределах блока Action команды 
	 регистрации события.  Значение этой переменной также можно определить 
	 с помощью свойства SourceArgs объекта PSEventArgs 
	 (System.Management.Automation.PSEventArgs), возвращаемого 
	 командлетом Get-Event. 

	$SourceEventArgs 
	 Содержит объект, представляющий первый аргумент набора EventArgs 
	 обрабатываемого события. Эта переменная заполняется только в пределах 
	 блока Action команды регистрации события. Значение этой переменной также 
	 можно определить с помощью свойства SourceArgs объекта PSEventArgs 
	 (System.Management.Automation.PSEventArgs), 
	 возвращаемого командлетом Get-Event. 

	$This
		В блоке скрипта, который определяет свойство или метод скрипта, 
		переменная $This ссылается на расширяемый объект. 

	$True
	 Содержит значение TRUE. Эту переменную можно использовать для 
	 представления значения TRUE в командах и скриптах.


СМ. ТАКЖЕ
	about_Hash_Tables
	about_Preference_Variables
	about_Variables