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