TÓPICO
    about_Automatic_Variables

DESCRIÇÃO RESUMIDA
    Descreve variáveis que armazenam informações do estado para o Windows 
    PowerShell.
    Essas variáveis são criadas e mantidas pelo Windows PowerShell.


DESCRIÇÃO LONGA
    A seguir, é apresentada uma lista das variáveis automáticas no Windows 
    PowerShell:
    
    
    $$
       Contém o último token da última linha recebida pela sessão.
    

    $? 
       Contém o status de execução da última operação. Contém TRUE se 
       a última operação tiver sido bem-sucedida e FALSE, caso tenha 
       falhado.
    
    $^
       Contém o primeiro token da última linha recebida pela sessão.
    
    $_
       Contém o objeto atual no objeto de pipeline. Você pode usar 
       essa variável em comandos que executam uma ação em todos os 
       objetos ou em objetos selecionados em um pipeline.
    
    $Args
       Contém uma matriz dos parâmetros não declarados e/ou valores de 
       parâmetros que são passados para uma função, um script ou um bloco de 
       scripts.
       Ao criar uma função, você pode declarar os parâmetros usando a 
       palavra-chave param ou adicionando uma lista separada por 
       vírgulas de parâmetros entre parênteses depois do nome da função.

    $ConsoleFileName
       Contém o caminho do arquivo de console (.psc1) que foi usado mais 
       recentemente na sessão. Essa variável é populada quando você inicia o 
       Windows PowerShell com o parâmetro PSConsoleFile ou quando você usa o 
       cmdlet Export-Console para exportar nomes de snap-in para um arquivo 
       de console. 

       Quando você usa o cmdlet Export-Console sem parâmetros, ele 
       atualiza automaticamente o arquivo de console usado mais 
       recentemente na sessão. Você pode usar essa variável 
       automática para determinar qual arquivo será atualizado.

    $Error
       Contém uma matriz de objetos de erro que representam os erros mais 
       recentes. O erro mais recente é o primeiro objeto de erro na matriz 
       ($Error[0]).

    $$Event
       Contém um objeto PSEventArgs que representa o evento que está sendo processado.
       Essa variável é preenchida apenas no bloco Action de um comando de registro 
       de eventos, como Register-ObjectEvent. O valor dessa variável é o mesmo objeto
       que o cmdlet Get-Event retorna. Portanto, você pode usar as propriedades da
       variável $Event, como $Event.TimeGenerated, em um bloco de script Action.
 

    $EventSubscriber
       Contém um objeto PSEventSubscriber que representa o assinante do evento que
       está sendo processado. Essa variável é preenchida apenas no bloco Action de
       um comando de registro de eventos. O valor dessa variável é o mesmo objeto
       que o cmdlet Get-EventSubscriber retorna. 


    $ExecutionContext
       Contém um objeto EngineIntrinsics que representa o contexto de 
       execução do host do Windows PowerShell. Você pode usar essa 
       variável para localizar os objetos de execução disponíveis 
       para cmdlets.

    $False
       Contém FALSE. Você pode usar essa variável para representar 
       FALSE em comandos e scripts, em vez de usar a cadeia de caracteres 
       "false". A cadeia de caracteres pode ser interpretada como TRUE se for 
       convertida em uma cadeia de caracteres não vazia ou em um inteiro 
       diferente de zero.

    $ForEach
       Contém o enumerador de um loop ForEach-Object. Você pode usar as 
       propriedades e os métodos de enumeradores no valor de cada variável 
       $ForEach. Essa variável só existe enquanto o loop For está em 
       execução. Ele é excluído quando o loop é concluído.
    
    $Home
       Contém o caminho completo do diretório base do usuário. Essa 
       variável é o equivalente das variáveis de ambiente 
       %homedrive%%homepath%, geralmente C:\Documents and 
       Settings\<usuário>

    $Host
       Contém um objeto que representa o aplicativo host atual do Windows 
       PowerShell. Você pode usar essa variável para representar o host atual em 
       comandos ou exibir ou alterar as propriedades do host, como $Host.version
       ou $Host.CurrentCulture ou $host.ui.rawui.setbackgroundcolor("Vermelho").

    $Input
       Um enumerador que contém a entrada que é passada a uma função. 
       A variável $Input diferencia maiúsculas de minúsculas e está 
       disponível apenas em funções e em blocos de scripts. (Blocos 
       de script são essencialmente funções sem nome.) No bloco 
       Process de uma função, a variável $Input contém o objeto que está 
       atualmente no pipeline. Quando o bloco Process é concluído, o valor 
       de $Input é NULL. Se a função não tiver um bloco Process, o valor de 
       $Input estará disponível para o bloco End e conterá toda a entrada 
       para a função.

    $LastExitCode
       Contém o código de saída do último programa baseado no Windows 
       que foi executado.

    $Matches
       A variável $Matches funciona com os operadores -match e -not match.
       Quando você envia uma entrada escalar para o operador -match 
       ou -notmatch e um deles detecta uma correspondência, um valor 
       booleano é retornado e a variável automática $Matches é populada 
       com uma tabela de hash de qualquer valor de cadeia de caracteres 
       que encontrou uma correspondência. Para obter mais informações 
       sobre o operador -match, consulte about_comparison_operators.
    
    $MyInvocation
       Contém um objeto com informações sobre o comando atual, como 
       script, função ou bloco de scripts. Você pode usar as informações 
       no objeto, como o caminho e o nome de arquivo do script 
       ($myinvocation.mycommand.path) ou o nome de uma função 
       ($myinvocation.mycommand.name) para identificar o comando atual. Isso é 
       particularmente útil para localizar o nome do script que está em execução.

    $NestedPromptLevel
       Contém o nível de prompt atual. Um valor igual a 0 indica o 
       nível de prompt original. O valor é incrementado quando você 
       entra em um nível aninhado e decrementado quando você sai dele.

       Por exemplo, o Windows PowerShell apresenta um prompt de comando 
       aninhado quando você usa o método $Host.EnterNestedProm pt. 
       O Windows PowerShell também apresenta um prompt de comando 
       aninhado quando você alcança um ponto de interrupção no 
       depurador do Windows PowerShell.

       Quando você entra em um aviso aninhado, o Windows PowerShell 
       pausa o comando atual, salva o contexto de execução e 
       incrementa o valor da variável $NestedPromptLevel. Para criar 
       prompts de comando aninhados adicionais (até 128 níveis) ou 
       voltar ao prompt de comando original, conclua o comando ou 
       digite "exit". 

       A variável $NestedPromptLevel ajuda a acompanhar o nível de prompt. 
       Você pode criar um prompt de comando alternativo do Windows 
       PowerShell que inclua esse valor, para que ele esteja sempre visível.

    $NULL
       Contém um valor NULO ou vazio. Você pode usar essa variável para 
       representar NULO em comandos e scripts, em vez de usar a cadeia de 
       caracteres "NULL". A cadeia de caracteres pode ser interpretada como 
       TRUE se for convertida em uma cadeia de caracteres não vazia ou em um 
       inteiro diferente de zero.

    $PID
       Contém o PID (identificador do processo) do processo que está 
       hospedando a sessão atual do Windows PowerShell.
  
    $Profile
       Contém o caminho completo do perfil do Windows PowerShell para 
       o usuário atual e o aplicativo host atual. Você pode usar essa 
       variável para representar o perfil em comandos. Por exemplo, 
       você pode usá-la em um comando para saber se um perfil foi criado:

           test-path $profile

       Ou pode usá-la em um comando para criar um perfil:

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

       Você também pode usá-la em um comando para abrir o perfil no 
       Bloco de Notas:

           notepad $profile

    $PSBoundParameters
       Contém um dicionário dos parâmetros ativos e de seus valores 
       atuais. Essa variável contém um valor somente em um escopo no 
       qual os parâmetros sejam declarados, como um script ou uma 
       função. Você pode usá-la para exibir ou alterar os valores 
       atuais de parâmetros ou para passar valores de parâmetros a 
       outro script ou outra função.

       Por exemplo:

         function test {
            param($a, $b)
            
            # Exibe os parâmetros em formato de dicionário.
            $psboundparameters
             
            # Chamar a função Test1 com $a e $b.
            test1 @psboundparameters   
         }

    $PsCmdlet
       Contém um objeto que representa o cmdlet ou a função avançada 
       que está sendo executada. 

       Você pode usar as propriedades e os métodos do objeto em seu 
       cmdlet ou código de função para responder às condições de uso. Por 
       exemplo, a propriedade ParameterSetName contém o nome do conjunto de 
       parâmetros que está sendo usado, e o método ShouldProcess adiciona os 
       parâmetros WhatIf e Confirm dinamicamente ao cmdlet.

       Para obter mais informações sobre a variável automática $PSCmdlet, 
       consulte about_Functions_Advanced.

    $PsCulture
       Contém o nome da cultura atualmente em uso no sistema 
       operacional. A cultura determina o formato de exibição de 
       itens como números, moeda e datas. Esse é o valor da propriedade 
       System.Globalization.CultureInfo.CurrentCulture.Name no sistema. Para 
       obter o objeto System.Globalization.CultureInfo para o sistema, use o 
       cmdlet Get-Culture.

    $PSDebugContext
       Durante a depuração, essa variável contém informações sobre o 
       ambiente de depuração. Caso contrário, ela contém um valor NULO. 
       Consequentemente, você pode usá-la para indicar se o depurador tem 
       controle. Quando populado, ele contém um objeto PsDebugContext que 
       tem Pontos de interrupção e propriedades InvocationInfo. A propriedade 
       InvocationInfo tem várias propriedades úteis, inclusive a propriedade 
       Location. A propriedade Location indica o caminho do script que está 
       sendo depurado.


    $PsHome
       Contém o caminho completo do diretório de instalação do Windows 
       PowerShell, normalmente, %windir%\System32\WindowsPowerShell\v1.0. 
       Você pode usar essa variável nos caminhos de arquivos do Windows 
       PowerShell. Por exemplo, o comando a seguir pesquisa os tópicos 
       conceituais da Ajuda para a palavra "variável": 

            select-string -pattern variável -path $pshome\*.txt

    $PSScriptRoot
       Contém o diretório do qual o módulo de script está sendo executado.
       Essa variável permite que scripts usem o caminho de módulo 
       para acessar outros recursos.


    $PsUICulture
       Contém o nome da cultura da interface do usuário atualmente em 
       uso no sistema operacional. A cultura da interface do usuário 
       determina quais cadeias de texto são usadas para elementos da 
       interface do usuário, como menus e mensagens. Esse é o valor da 
       propriedade System.Globalization.CultureInfo.CurrentUICulture.N
       ame do sistema. Para obter o objeto System.Globalization.Cultur
       eInfo para o sistema, use o cmdlet Get-UICulture. 


    $PsVersionTable
        Contém uma tabela de hash somente leitura que exibe detalhes 
        sobre a versão do Windows PowerShell que está em execução na 
        sessão atual.
        A tabela inclui os seguintes itens:

	    CLRVersion:            A versão do CLR (common language runtime)

	    BuildVersion:          O número de compilação da versão atual

    	    PSVersion:             O número da versão do Windows 
    	    PowerShell

            WSManStackVersion:     o número da versão da pilha WS-Management

	    PSCompatibleVersions:  versões do Windows PowerShell que são 
	    			   compatíveis com a versão atual

            SerializationVersion   A versão do método de serialização

            PSRemotingProtocolVersion
                                   A versão do protocolo de 
                                   gerenciamento remoto do Windows 
                                   PowerShell

    $Pwd
       Contém um objeto de caminho que representa o caminho completo do 
       diretório atual.

    $Sender 
       Contém o objeto que gerou esse evento. Essa variável é preenchida
       apenas no bloco Action de um comando de registro de eventos. O valor
       dessa variável também pode ser encontrado na propriedade Sender do 
       objeto PSEventArgs (System.Management.Automation.PSEventArgs) que 
       Get-Event retorna. 
 
    
    $ShellID
       Contém o identificador do shell atual.

   $SourceArgs
       Contém objetos que representam os argumentos para o evento que está 
       sendo processado. Essa variável é preenchida apenas no bloco Action 
       de um comando de registro de eventos. O valor dessa variável 
       também pode ser encontrado na propriedade SourceArgs do objeto PSEventArgs
       (System.Management.Automation.PSEventArgs) que Get-Event retorna.

   $SourceEventArgs
        Contém um objeto que representa o primeiro argumento do evento que
        deriva de $SourceEventArgs do evento está sendo processado. Essa variável
        é preenchida apenas no bloco Action de um comando de registro de eventos. 
        O valor dessa variável também pode ser encontrado na propriedade 
        SourceArgs do objeto PSEventArgs (System.Management.Automation.PSEventArgs) 
        que Get-Event retorna.
      
    $This
        Em um bloco de scripts que define uma propriedade de script 
        ou um método de script, a variável $This faz referência ao 
        objeto que está sendo estendido. 

    $True
       Contém TRUE. Você pode usar essa variável para representar TRUE em 
       comandos e scripts.


CONSULTE TAMBÉM
    about_Hash_Tables
    about_Preference_Variables
    about_Variables

      




Sumário