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