about_Automatic_Variables

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 string 
       "false". A string pode ser interpretada como TRUE se for 
       convertida em uma string 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 string 
       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 string pode ser interpretada como 
       TRUE se for convertida em uma string 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