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