Compartilhar via


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

Consulte também

Conceitos

about_Variables
about_Automatic_Variables
about_Providers