Métodos System.Environment.GetEnvironmentVariable
Este artigo fornece observações complementares à documentação de referência para essa API.
O GetEnvironmentVariable método recupera o valor de uma variável de ambiente do processo atual.
Os nomes de variáveis de ambiente diferenciam maiúsculas de minúsculas em sistemas Unix, mas não diferenciam maiúsculas de minúsculas no Windows.
Observação
As modificações no ambiente em processo feitas por bibliotecas nativas não são vistas pelos chamadores gerenciados. Por outro lado, essas modificações feitas por chamadores gerenciados não são vistas pelas bibliotecas nativas.
GetEnvironmentVariable(String)método
O GetEnvironmentVariable(String) método recupera uma variável de ambiente do bloco de ambiente do processo atual somente. É equivalente a chamar o GetEnvironmentVariable(String, EnvironmentVariableTarget) método com um target
valor de EnvironmentVariableTarget.Process.
Para recuperar todas as variáveis de ambiente junto com seus valores, chame o GetEnvironmentVariables método.
Em sistemas Windows
Em sistemas Windows, o bloco de ambiente do processo atual inclui:
Todas as variáveis de ambiente que são fornecidas a ele pelo processo pai que o criou. Por exemplo, um aplicativo .NET iniciado a partir de uma janela do console herda todas as variáveis de ambiente da janela do console.
Se não houver nenhum processo pai, as variáveis de ambiente por máquina e por usuário serão usadas. Por exemplo, uma nova janela de console tem todas as variáveis de ambiente por máquina e por usuário definidas no momento em que foi iniciada.
Quaisquer variáveis adicionadas ao bloco de processo enquanto o processo está em execução chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um
target
valor de EnvironmentVariableTarget.Process. Essas variáveis de ambiente persistem até que o aplicativo .NET seja encerrado.
Se as variáveis de ambiente forem criadas após o início do processo, você poderá usar esse método para recuperar somente as variáveis que foram criadas chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um target
valor de .EnvironmentVariableTarget.Process.
Em sistemas Unix-like
Em sistemas Unix-like, o bloco de ambiente do processo atual inclui as seguintes variáveis de ambiente:
Todas as variáveis de ambiente que são fornecidas a ele pelo processo pai que o criou. Para aplicativos .NET iniciados a partir de um shell, isso inclui todas as variáveis de ambiente definidas no shell.
Quaisquer variáveis adicionadas ao bloco de processo enquanto o processo está em execução chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um
target
valor de EnvironmentVariableTarget.Process. Essas variáveis de ambiente persistem até que o aplicativo .NET seja encerrado.
O .NET em sistemas do tipo Unix não oferece suporte a variáveis de ambiente por máquina ou por usuário.
GetEnvironmentVariable(String, EnvironmentVariableTarget)método
Para recuperar todas as variáveis de ambiente junto com seus valores, chame o GetEnvironmentVariables método.
Em sistemas Windows
No Windows, o target
parâmetro especifica se a variável de ambiente é recuperada do processo atual ou da chave do Registro do sistema operacional Windows para o usuário ou computador local atual. Todas as variáveis de ambiente por usuário e por máquina são copiadas automaticamente para o bloco de ambiente do processo atual, assim como quaisquer outras variáveis de ambiente disponíveis para o processo pai que criou o processo .NET. No entanto, as variáveis de ambiente adicionadas somente ao bloco de ambiente do processo atual chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um target
valor de EnvironmentVariableTarget.Process persist somente durante o processo.
Em sistemas Unix-like
Em sistemas Unix-like, o GetEnvironmentVariable(String, EnvironmentVariableTarget)
método suporta um target
valor de EnvironmentVariableTarget.Process apenas. Chamadas com um target
valor de ou EnvironmentVariableTarget.User não são suportadas EnvironmentVariableTarget.Machine e retornam null
.
As variáveis de ambiente por processo são:
Aqueles herdados do processo pai, normalmente o shell usado para invocar
dotnet.exe
ou iniciar o aplicativo .NET.Aqueles definidos chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um
target
valor de EnvironmentVariableTarget.Process. Essas variáveis de ambiente persistem somente até que odotnet
processo ou o aplicativo .NET termine.