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

      




Содержание