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