Ver e Modificar Variáveis de Ambiente

Discussão

Em ficheiros batch, as variáveis de ambiente são a principal forma de armazenar informação temporária ou de transferir informação entre ficheiros batch. As variáveis PowerShell e parâmetros de script são formas mais eficazes de resolver esses problemas, mas as variáveis de ambiente continuam a fornecer uma forma útil de aceder a definições comuns do sistema, tais como o caminho do sistema, directório temporário, nome de domínio, nome de utilizador, e mais.

PowerShell superfícies variáveis de ambiente através do seu fornecedor de ambiente: um contentor que lhe permite trabalhar com variáveis de ambiente tal como trabalharia com itens no sistema de ficheiros ou fornecedores de registo. Por defeito, PowerShell define um env: drive (muito semelhante a c: ou d:) que fornece acesso a esta informação:

PS > dir env:Name Value---- -----Path c:\progra~1\ruby\bin;C:\WINDOWS\system32;C:\TEMP C:\DOCUME~1\Lee\LOCALS~1\TempSESSIONNAME ConsolePATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;(...)

Desde que é um drive PowerShell regular, a forma completa de obter o valor de uma variável de ambiente é semelhante a isto:

PS > Get-Content Env:\UsernameLee

Quando se trata de variáveis de ambiente, no entanto, essa é uma sintaxe que quase nunca precisará de usar, devido ao suporte do PowerShell para o Get-Content e Set-Content sintaxe da variável, o que encurta esse valor:

PS > $env:UsernameLee

Esta sintaxe funciona para todas as unidades mas é utilizada mais frequentemente para aceder a variáveis de ambiente. Para mais informações sobre esta sintaxe, ver Access Information About Your Command’s Invocation.

Algumas variáveis de ambiente obtêm de facto os seus valores a partir de uma combinação de dois locais: as definições de toda a máquina e as definições do utilizador actual. Se quiser aceder aos valores das variáveis de ambiente especificamente configuradas ao nível da máquina ou do utilizador, utilize o método ::GetEnvironmentVariable(). Por exemplo, se tiver definido um directório de ferramentas no seu caminho, poderá ver:

PS > ::GetEnvironmentVariable("Path", "User")d:\lee\tools

Para definir permanentemente estas variáveis de ambiente específicas da máquina ou do utilizador, utilize o método ::SetEnvironmentVariable():

::SetEnvironmentVariable(<name>, <value>, <target>)

O parâmetro target define onde esta variável deve ser armazenada: User para o utilizador actual e Machine para todos os utilizadores da máquina. Por exemplo, para adicionar permanentemente o seu directório de ferramentas ao seu caminho:

$pathElements = @(::GetEnvironmentVariable("Path", "User") -split ";")$pathElements += "d:\tools"$newPath = $pathElements -join ";"::SetEnvironmentVariable("Path", $newPath, "User")

Para mais informações sobre a modificação do caminho do sistema, ver Modificar o caminho do utilizador ou do sistema.

Para mais informações sobre o Get-Content e Set-Content sintaxe variável, ver Variáveis. Para mais informações sobre o fornecedor do ambiente, digite Get-Help About_Environment.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *