Compartilhar via


about_Variables

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0

TÓPICO

about_Variables

DESCRIÇÃO BREVE

Descreve como as variáveis armazenam valores que podem ser usados no Windows PowerShell®.

DESCRIÇÃO LONGA

Você pode armazenar todos os tipos de valores nas variáveis do Windows PowerShell. Normalmente, elas são usadas para armazenar os resultados dos comandos e para armazenar elementos que são usados nos comandos e expressões, como nomes, caminhos, configurações e valores.

Uma variável é uma unidade de memória na qual os valores são armazenados. No Windows PowerShell, as variáveis são representadas por cadeias de texto que começam com um sinal de cifrão ($), por exemplo, $a, $process ou $my_var.

Os nomes de variáveis não diferenciam maiúsculas de minúsculas. Os nomes das variáveis podem conter espaços e caracteres especiais, mas esses caracteres são difíceis de usar e devem ser evitados.

Há vários tipos diferentes de variáveis no Windows PowerShell.

Variáveis criadas pelo usuário:

As variáveis criadas pelo usuário são criadas e mantidas pelo usuário. Por padrão, as variáveis criadas na linha de comando do Windows PowerShell somente existirão enquanto a janela do Windows PowerShell estiver aberta e serão perdidas ao fechar a janela. Para salvar uma variável, adicione-a a seu perfil do Windows PowerShell. Você também pode criar variáveis em scripts com escopo local, global ou de script.

Variáveis automáticas:

As variáveis automáticas armazenam o estado do Windows PowerShell. Elas são criadas pelo Windows PowerShell e o Windows PowerShell altera seus valores conforme necessário para manter sua precisão. Os usuários não podem alterar o valor dessas variáveis. Por exemplo, a variável $PSHome armazena o caminho para o diretório de instalação do Windows PowerShell.

Para obter mais informações, uma lista e uma descrição das variáveis automáticas, consulte about_Automatic_Variables.

Variáveis preferenciais:

As variáveis preferenciais armazenam as preferências do usuário para o Windows PowerShell. Elas variáveis são criadas pelo Windows PowerShell e são preenchidas com valores padrão. Os usuários podem alterar o valor dessas variáveis. Por exemplo, a variável $MaximumHistoryCount determina o número máximo de entradas no histórico da sessão.

Para obter mais informações, uma lista e uma descrição das variáveis preferenciais, consulte about_Preference_Variables.

TRABALHO COM VARIÁVEIS

Para criar uma nova variável, use uma instrução de atribuição para atribuir um valor à variável. Você não precisa declarar a variável antes de usá-la. O valor padrão de todas as variáveis é $null.

Por exemplo:

        PS> $MyVariable = 1, 2, 3
        PS> $path = "C:\Windows\System32"

As variáveis são muito úteis para armazenar os resultados dos comandos.

Por exemplo:

          
        PS> $processes = Get-Process         
     
        PS> $Today = (Get-Date).date

Para exibir o valor de uma variável, digite o nome dela precedido por um sinal de cifrão ($).

Por exemplo:

        PS> $MyVariable
        1
        2
        3
        PS> $Today
        Thursday, September 03, 2009 12:00:00 AM

Para alterar o valor de uma variável, atribua um novo valor a ela.

Os exemplos a seguir exibem o valor da variável $MyVariable, altera o valor dela e, em seguida, exibe seu novo valor.

        PS> $MyVariable
        1
        2
        3
        PS> $MyVariable = "The green cat."
        PS> $MyVariable
        The green cat.

Para excluir o valor de uma variável, use o cmdlet Clear-Variable ou altere o valor para $null.

        PS> Clear-Variable -name MyVariable  

        -or-

        PS> $MyVariable = $null

Para excluir a variável, use os cmdlets Remove-Variable ou Remove-Item. (Esses cmdlets são discutidos mais adiante neste tópico.)

       PS> remove-variable -name MyVariable

       PS> remove-item -path variable:\myvariable

Para obter uma lista de todas as variáveis de sua sessão do Windows PowerShell, digite:

       get-variable

TIPOS DE VARIÁVEIS

Você pode armazenar qualquer tipo de objeto em uma variável, incluindo números inteiros, cadeias de caracteres, matrizes, tabelas de hash e objetos que representam processos, serviços, logs de eventos e computadores.

As variáveis do Windows PowerShell são "livremente tipadas", o que significa que não são limitadas a um determinado tipo de objeto. Uma só variável pode conter até mesmo uma coleção (uma "matriz") de diferentes tipos de objetos ao mesmo tempo.

O tipo de dados de uma variável, que é um tipo .NET Framework, é determinado pelos tipos .NET dos valores da variável.

Por exemplo:

        PS> $a = 12     (System.Int32)
        
        PS> $a = "Word" (System.String)

        PS> $a = 12, "Word" (System.Int32, System.String)

        PS> $a = dir C:\Windows\System32  (Files and folders)

Você pode usar um atributo de tipo e uma notação de conversão para garantir que uma variável somente possa conter objetos do tipo especificado ou objetos que possam ser convertidos para esse tipo. Se você tentar atribuir um valor de outro tipo, o Windows PowerShell tentará converter o valor para seu tipo. Se isso não for possível, a instrução de atribuição falhará.

Para usar a notação de conversão, insira um nome de tipo, entre colchetes, antes do nome da variável (ao lado esquerdo da instrução de atribuição). O exemplo a seguir cria uma variável $number que somente pode conter números inteiros, uma variável $words que somente pode conter cadeias de caracteres e uma variável $dates que somente pode conter os objetos DateTime.

        PS> [int]$number = 8
        PS> $a = "12345" (The string is converted to an integer.)
        PS> $a = "Hello"
        Cannot convert value "Hello" to type "System.Int32". Error: "Input string was not in a correct format."
        At line:1 char:3
        + $a <<<<  = "Hello"
            + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
            + FullyQualifiedErrorId : RuntimeException
        PS> [string]$words = "Hello"

        PS> $words = 2   (The integer is converted to a string.)

        PS> $words + 10  (The strings are concatenated.)
        210              
        PS> [datetime] $dates = "09/12/91" (The string is converted to a DateTime object.)

        PS> $dates
        Thursday, September 12, 1991 12:00:00 AM

        PS> $dates = 10  (The integer is converted to a DateTime object.)
        PS> $dates
        Monday, January 01, 0001 12:00:00 AM
                

USO DE VARIÁVEIS EM COMANDOS E EXPRESSÕES

Para usar uma variável em um comando ou uma expressão, digite o nome da variável precedido pelo cifrão ($).

Se o nome de variável (e o cifrão) não estiverem entre aspas ou se estiverem entre aspas duplas ("), o valor da variável será usado no comando ou expressão.

Se o nome da variável (e o cifrão) estiverem entre aspas ('), o nome da variável será usado na expressão.

Por exemplo, o primeiro comando obtém o valor da variável $profile, que é o caminho para o arquivo de perfil do usuário do Windows PowerShell no console do Windows PowerShell. O segundo comando abre o arquivo no bloco de notas, e o terceiro e o quarto comando usam o nome da variável em uma expressão.

        PS> $profile
        C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
        PS> notepad $profile 
        - or -
        PS> notepad "$profile"
        C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
        PS> '$profile'
        $profile
        PS> 'Use the $profile variable.'
        Use the $profile variable.

Para obter mais informações sobre o uso de aspas no Windows PowerShell, consulte about_Quoting_Rules.

NOMES DE VARIÁVEIS QUE INCLUEM CARACTERES ESPECIAIS

Os nomes de variáveis começam com um sinal de cifrão. Eles podem incluir caracteres alfanuméricos e caracteres especiais. O comprimento do nome da variável é limitado apenas pela memória disponível.

Sempre que possível, os nomes das variáveis devem incluir somente caracteres alfanuméricos e o caractere de sublinhado (_). Os nomes de variáveis que incluem espaços e outros caracteres especiais são difíceis de usar e devem ser evitados.

Para criar ou exibir um nome de variável que inclua espaços ou caracteres especiais, coloque o nome da variável entre chaves. Isso instrui o Windows PowerShell a interpretar literalmente os caracteres do nome da variável.

Por exemplo, o comando a seguir cria e exibe uma variável chamada "save-items".

          C:\PS> ${save-items} = "a", "b", "c"
          C:\PS> ${save-items}
          a
          b
          c

O comando a seguir obtém os itens filho do diretório que são representado pela variável de ambiente "ProgramFiles (x86)".

          C:\PS> Get-childitem ${env:ProgramFiles(x86)}

Para fazer referência a um nome de variável que inclua chaves, coloque o nome da variável entre chaves e use o caractere backtick (escape) para a supressão das chaves. Por exemplo, para criar uma variável chamada "this{value}is" com um valor de 1, digite:

          C:\PS> ${this`{value`}is} = 1
          C:\PS> ${this`{value`}is}
          1

VARIÁVEIS E ESCOPO

Por padrão, as variáveis estão disponíveis somente no escopo no qual elas são criadas.

Por exemplo, uma variável que você criar em uma função somente estará disponível nessa função. Uma variável que você criar em um script somente estará disponível nesse script (a menos que você inicie o script com um ponto, o que o adiciona ao escopo atual).

Você pode usar um modificador de escopo para alterar o escopo padrão da variável. A expressão a seguir cria uma variável chamada "Computers". A variável tem um escopo global, mesmo quando ele a for criada em um script ou função.

            $global:computers = "Server01"

Para obter mais informações, consulte about_Scopes.

COMO SALVAR VARIÁVEIS

As variáveis que você criar somente estarão disponíveis na sessão em que você as criar. Elas serão perdidas quando você fechar sua sessão.

Para criar a variável em cada sessão do Windows PowerShell que iniciar, adicione a variável a seu perfil do Windows PowerShell.

Por exemplo, para alterar o valor da variável $VerbosePreference em cada sessão do Windows PowerShell, adicione o seguinte comando ao perfil do Windows PowerShell.

  $VerbosePreference = "Continue"

Você pode adicionar esse comando a seu perfil abrindo o arquivo de perfil em um editor de texto, como o bloco de notas. Para obter mais informações sobre perfis do Windows PowerShell, consulte about_profiles.

A UNIDADE VARIABLE:

O provedor de Variable do Windows PowerShell cria uma unidade Variable: que parece e age como uma unidade de sistema de arquivos, mas que contém as variáveis de sua sessão e seus valores.

Para alterar a unidade Variable:, digite:

        set-location variable:
        
         (or "cd variable:")

Para listar os itens (variáveis) da unidade Variable:, use os cmdlets Get-Item ou Get-ChildItem. Por exemplo:

         get-childitem variable:
         (or "dir" or "ls")

Para obter o valor de uma variável específica, use a notação de sistema de arquivos para especificar o nome da unidade e o nome da variável. Por exemplo, para obter a variável automática $PSCulture, use o comando a seguir.

         get-item variable:\PSCulture      

         Name                           Value
         ----                           -----
         PSCulture                      en-US        

Para obter mais informações sobre a unidade Variable: e o provedor de Variable do Windows PowerShell, digite "get-help variable".

OS CMDLETS DE VARIÁVEIS

O Windows PowerShell inclui um conjunto de cmdlets que foram projetados para gerenciar variáveis.

         Cmdlet Name           Description
         -----------           -----------

         Clear-Variable        Deletes the value of a variable.
         Get-Variable          Gets the variables in the current console.
         New-Variable          Creates a new variable.
         Remove-Variable       Deletes a variable and its value.
         Set-Variable          Changes the value of a variable.

Para obter ajuda sobre esses cmdlets, digite: "Get-Help <cmdlet-name>".

CONSULTE TAMBÉM

about_Automatic_Variables

about_Environment_Variables

about_Preference_Variables

about_Profiles

about_Quoting_Rules

about_Scopes