Variable Provider
Nome do provedor
Variable
Unidades
Variable:
Descrição resumida
Fornece acesso às variáveis do Windows PowerShell e a seus valores.
Descrição detalhada
O provedor Variable do Windows PowerShell permite obter, adicionar, alterar, limpar e excluir variáveis Windows PowerShell no console atual.
O provedor Variable do Windows PowerShell dá suporte às variáveis que o Windows PowerShell cria, incluindo as variáveis automáticas e de preferência, além das variáveis que você cria.
O provedor Variable é um namespace comum que contém apenas nos objetos de variável. As variáveis não têm itens filhos.
A maioria das variáveis são instâncias da classe System.Management.Automation.PSVariable. No entanto, há algumas variações. Por exemplo, a variável "?" é um membro da classe QuestionMarkVariable, e a variável "MaximumVariableCount" é um membro da classe SessionStateCapacityVariable.
O provedor Variable expõe seu repositório de dados na unidade Variable:. Para trabalhar com variáveis, altere seu local para a unidade Variable: ("set-location variable:") ou trabalhe de qualquer outra unidade do Windows PowerShell. Para referenciar uma variável de outro local, use o nome da unidade, (Variable:) no caminho.
O Windows PowerShell inclui um conjunto de cmdlets designados especialmente para exibir e alterar variáveis.
-- Get-Variable
-- New-Variable
-- Set-Variable
-- Remove-Variable
-- Clear-Variable
Ao usar esses cmdlets, você não precisa especificar a unidade Variable: no nome.
O provedor Variable dá suporte a todos os cmdlets cujos nomes contenham Item (os cmdlets Item), exceto Invoke-Item. O provedor Variable dá suporte aos cmdlets Get-Content e Set-Content. No entanto, não dá suporte aos cmdlets cujos nomes contenham ItemProperty (os cmdlets ItemProperty), e nem ao parâmetro Filter em nenhum cmdlet.
Você também pode utilizar o analisador de expressão do Windows PowerShell para criar, exibir e alterar os valores das variáveis de ambiente sem utilizar os cmdlets. Ao trabalhar com variáveis diretamente, utilize um sinal de dólar ($) para identificar o nome como uma variável e o operador de atribuição (=) para estabelecer e alterar seu valor. Por exemplo, "$p = Get-Process" cria a variável "p" e armazena os resultados de um comando "Get-Process" nessa variável.
Todas as alterações nas variáveis afetam apenas a sessão atual. Para salvar as alterações, adicione-as ao perfil do Windows PowerShell ou utilize Export-Console para salvar o console atual.
Exemplos
Acessando a unidade Variable:
-------------------------- EXEMPLO 1 --------------------------
Este comando altera o local atual para a unidade Variable:. Você pode utilizar o comando em qualquer unidade do Windows PowerShell. Para retornar a uma unidade do sistema de arquivos, digite o nome da unidade. Por exemplo, digite "set-location c:".
set-location variable:
Exibindo o valor das variáveis
-------------------------- EXEMPLO 1 --------------------------
Este comando obtém a lista de todas as variáveis e seus valores na sessão atual. Você pode utilizar o comando a partir de qualquer unidade do Windows PowerShell.
get-childitem -path variable:
-------------------------- EXEMPLO 2 --------------------------
Este comando obtém as variáveis com nomes que iniciam com "max". Você pode utilizar o comando a partir de qualquer unidade do Windows PowerShell.
get-childitem -path variable:max*
Se você estiver na unidade Variable:, poderá omitir o nome da unidade no caminho.
-------------------------- EXEMPLO 3 --------------------------
Este comando obtém o valor da variável WhatIfPreference digitando-o na linha de comando.
O nome da variável é precedido por um sinal de dólar ($) para indicar que ela é uma variável. O nome de unidade Variable: não é especificado.
$WhatIfPreference
-------------------------- EXEMPLO 4 --------------------------
Este comando usa o parâmetro LiteralPath de Get-ChildItem para obter o valor da variável "?" na unidade Variable:. Get-ChildItem não tenta resolver nenhum curinga nos valores do parâmetro LiteralPath.
get-childitem -literalpath ?
Para exibir o valor de uma variável com um nome de caractere especial sem um cmdlet, digite um sinal de dólar ($) e o nome da variável. Por exemplo, para exibir o valor da variável "?", digite "$?".
-------------------------- EXEMPLO 5 --------------------------
Este comando obtém as variáveis que tenham os valores "ReadOnly" ou "Constant" para suas propriedades Options.
get-childitem -path variable: | where-object {$_.options -match "Constant" -or $_.options -match "ReadOnly"} | format-list -property name, value, options
Criando uma nova variável
-------------------------- EXEMPLO 1 --------------------------
Este comando cria a variável "services" e armazena os resultados de um comando Get-Service nela. Como o local atual está na unidade Variable:, o valor do parâmetro Path é um ponto (.), que representa o local atual.
Os parênteses ao redor do comando Get-Service garantem que o comando seja executado antes de a variável ser criada. Sem os parênteses, o valor da nova variável é uma cadeia de caracteres "Get-Service".
new-item -path . -name services -value (Get-Service)
Se você não estiver na unidade Variable:, inclua o nome de unidade Variable: no caminho.
-------------------------- EXEMPLO 2 --------------------------
Este comando cria uma variável "services" e armazena o resultado de um comando Get-Service nela.
O comando utiliza um sinal de dólar ($) para identificar uma variável e o operador de atribuição (=) para atribuir o resultado do comando Get-Service à variável recém-criada.
$services = Get-Service
Para criar uma variável sem um valor, omita o operador de atribuição.
Exibindo as propriedades e os métodos de variáveis
-------------------------- EXEMPLO 1 --------------------------
Este comando usa o cmdlet Get-Item para obter todas as variáveis. O operador de pipeline (|) envia os resultados para o cmdlet Get-Member, que exibe os métodos e as propriedades do objeto.
get-item -path variable:* | get-member
Quando você canaliza uma coleção de objetos (como a coleção de variáveis na unidade Variable:) para Get-Member, este avalia cada objeto da coleção separadamente e retorna informações sobre cada tipo de objeto que encontra. Para obter informações sobre a coleção de objetos na unidade Variable:, utilize o parâmetro InputObject de Get-Member. Por exemplo, digite "get-member -inputobject (get-item variable:*)". Quando você usa InputObject, Get-Member avalia a coleção, não os objetos da coleção.
-------------------------- EXEMPLO 2 --------------------------
Este comando lista os valores das propriedades da variável "home". Ele utiliza o cmdlet Get-Item para obter um objeto que represente a variável "home". O operador de pipeline (|) envia os resultados para o comando Format-List. O comando Format-List utiliza o parâmetro Property com um caractere curinga (*) para formatar e exibir os valores de todas as propriedades da variável "home".
get-item variable:home | format-list -property *
Alterando as propriedades de uma variável
-------------------------- EXEMPLO 1 --------------------------
Este comando utiliza o cmdlet Rename-Item para alterar o nome da variável "a" para "processes".
rename-item -path variable:a -newname processes
-------------------------- EXEMPLO 2 --------------------------
Este comando utiliza o cmdlet Set-Item para alterar o valor da variável ErrorActionPreference para "Stop".
set-item -path variable:ErrorActionPreference -value Stop
-------------------------- EXEMPLO 3 --------------------------
Este comando altera o valor da variável ErrorActionPreference para "Stop".
Ele utiliza um sinal de dólar ($) para indicar uma variável e o operador de atribuição (=) para atribuir o valor.
$ErrorActionPreference = Stop
Copiando uma variável
-------------------------- EXEMPLO 1 --------------------------
Este comando utiliza o cmdlet Copy-Item para copiar a variável "processes" para "old_processes". Ele cria uma variável denominada "old_processes" que tem o mesmo valor que a variável "processes".
copy-item -path variable:processes -destination variable:old_processes
Se o comando for emitido da unidade Variable:, você poderá omitir o nome da unidade no valor do parâmetro Path.
-------------------------- EXEMPLO 2 --------------------------
Este comando copia a variável "processes" para "old_processes" sem utilizar um cmdlet. Ele utiliza o sinal de dólar ($) para indicar variáveis e o operador de atribuição para atribuir o valor de $processes para old_processes.
$old_processes = $processes
Excluindo uma variável
-------------------------- EXEMPLO 1 --------------------------
Este comando exclui a variável "serv" da sessão atual. Você pode utilizar o comando em qualquer unidade do Windows PowerShell.
remove-variable -path variable:serv
-------------------------- EXEMPLO 2 --------------------------
Este comando exclui todas as variáveis da sessão atual, exceto as variáveis cujas propriedades Options tenham um valor Constant. Sem o parâmetro Force, o comando não exclui variáveis cujas propriedades Options tenham um valor ReadOnly.
remove-item variable:* -force
Definindo o valor de uma variável como NULL
-------------------------- EXEMPLO 1 --------------------------
Este comando utiliza o cmdlet Clear-Item para alterar o valor da variável "processes" para NULL.
clear-item -path variable:processes
-------------------------- EXEMPLO 2 --------------------------
Este comando limpa o valor da variável "processes" atribuindo um valor nulo a ela. Ele utiliza a variável automática $null para representar o valor NULL.
$processes = $null