Environment.GetEnvironmentVariable Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Recupera o valor de uma variável de ambiente.
Sobrecargas
| Nome | Description |
|---|---|
| GetEnvironmentVariable(String) |
Recupera o valor de uma variável de ambiente do processo atual. |
| GetEnvironmentVariable(String, EnvironmentVariableTarget) |
Recupera o valor de uma variável de ambiente do processo atual ou da chave do registro do sistema operacional Windows para o usuário atual ou o computador local. |
GetEnvironmentVariable(String)
- Origem:
- Environment.cs
- Origem:
- Environment.cs
- Origem:
- Environment.cs
- Origem:
- Environment.cs
- Origem:
- Environment.cs
Recupera o valor de uma variável de ambiente do processo atual.
public:
static System::String ^ GetEnvironmentVariable(System::String ^ variable);
public static string GetEnvironmentVariable(string variable);
public static string? GetEnvironmentVariable(string variable);
static member GetEnvironmentVariable : string -> string
Public Shared Function GetEnvironmentVariable (variable As String) As String
Parâmetros
- variable
- String
O nome da variável de ambiente.
Retornos
O valor da variável de ambiente especificada por variable, ou null se a variável de ambiente não for encontrada.
Exceções
variable é null.
O chamador não tem a permissão necessária para executar essa operação.
Exemplos
O exemplo a seguir usa o método GetEnvironmentVariable para recuperar a variável de ambiente windir, que contém o caminho do diretório Windows.
using System;
using System.IO;
public class Example
{
public static void Main()
{
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
// Change the directory to %WINDIR%
Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir");
DirectoryInfo info = new DirectoryInfo(".");
Console.WriteLine("Directory Info: " + info.FullName);
}
else
{
Console.WriteLine("This example runs on Windows only.");
}
}
}
// The example displays output like the following on a .NET implementation running on Windows:
// Directory Info: C:\windows
// The example displays the following output on a .NET implementation on Unix-based systems:
// This example runs on Windows only.
open System
open System.IO
if Environment.OSVersion.Platform = PlatformID.Win32NT then
// Change the directory to %WINDIR%
Environment.CurrentDirectory <- Environment.GetEnvironmentVariable "windir"
let info = DirectoryInfo "."
printfn $"Directory Info: {info.FullName}"
else
printfn "This example runs on Windows only."
// The example displays output like the following on a .NET implementation running on Windows:
// Directory Info: C:\windows
// The example displays the following output on a .NET implementation on Unix-based systems:
// This example runs on Windows only.
Imports System.IO
Module Example
Public Sub Main()
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
' Change the directory to %WINDIR%
Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir")
Dim info As New DirectoryInfo(".")
Console.WriteLine("Directory Info: " + info.FullName)
Else
Console.WriteLine("This example runs on Windows only.")
End If
End Sub
End Module
' The example displays output like the following on a .NET implementation running on Windows:
' Directory Info: C:\windows
' The example displays the following output on a .NET implementation on Unix-based systems:
' This example runs on Windows only.
O exemplo a seguir tenta recuperar o valor de uma variável de ambiente nomeada Test1 do bloco de ambiente do processo. Se a variável não existir, o exemplo a criará e recuperará seu valor. O exemplo exibe o valor da variável. Se o exemplo criou a variável, ele também chama o GetEnvironmentVariables(EnvironmentVariableTarget) método com cada membro da EnvironmentVariableTarget enumeração para estabelecer que a variável só pode ser recuperada do bloco de ambiente do processo atual. Por fim, se o exemplo criou a variável, ela a excluirá.
using System;
public class Example
{
public static void Main()
{
string value;
bool toDelete = false;
// Check whether the environment variable exists.
value = Environment.GetEnvironmentVariable("Test1");
// If necessary, create it.
if (value == null)
{
Environment.SetEnvironmentVariable("Test1", "Value1");
toDelete = true;
// Now retrieve it.
value = Environment.GetEnvironmentVariable("Test1");
}
// Display the value.
Console.WriteLine($"Test1: {value}\n");
// Confirm that the value can only be retrieved from the process
// environment block if running on a Windows system.
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
Console.WriteLine("Attempting to retrieve Test1 from:");
foreach (EnvironmentVariableTarget enumValue in
Enum.GetValues(typeof(EnvironmentVariableTarget))) {
value = Environment.GetEnvironmentVariable("Test1", enumValue);
Console.WriteLine($" {enumValue}: {(value != null ? "found" : "not found")}");
}
Console.WriteLine();
}
// If we've created it, now delete it.
if (toDelete) {
Environment.SetEnvironmentVariable("Test1", null);
// Confirm the deletion.
if (Environment.GetEnvironmentVariable("Test1") == null)
Console.WriteLine("Test1 has been deleted.");
}
}
}
// The example displays the following output if run on a Windows system:
// Test1: Value1
//
// Attempting to retrieve Test1 from:
// Process: found
// User: not found
// Machine: not found
//
// Test1 has been deleted.
//
// The example displays the following output if run on a Unix-based system:
// Test1: Value1
//
// Test1 has been deleted.
module Example
open System
let mutable toDelete = false
// Check whether the environment variable exists.
let value =
let v = Environment.GetEnvironmentVariable "Test1"
// If necessary, create it.
if isNull v then
Environment.SetEnvironmentVariable("Test1", "Value1")
toDelete <- true
Environment.GetEnvironmentVariable "Test1"
else
v
// Display the value.
printfn $"Test1: {value}\n"
// Confirm that the value can only be retrieved from the process
// environment block if running on a Windows system.
if Environment.OSVersion.Platform = PlatformID.Win32NT then
printfn "Attempting to retrieve Test1 from:"
for enumValue in Enum.GetValues typeof<EnvironmentVariableTarget> do
let value = Environment.GetEnvironmentVariable("Test1", enumValue :?> EnvironmentVariableTarget)
printfn $""" {enumValue}: {if value <> null then "found" else "not found"}"""
printfn ""
// If we've created it, now delete it.
if toDelete then
Environment.SetEnvironmentVariable("Test1", null)
// Confirm the deletion.
if Environment.GetEnvironmentVariable "Test1" |> isNull then
printfn "Test1 has been deleted."
// The example displays the following output if run on a Windows system:
// Test1: Value1
//
// Attempting to retrieve Test1 from:
// Process: found
// User: not found
// Machine: not found
//
// Test1 has been deleted.
//
// The example displays the following output if run on a Unix-based system:
// Test1: Value1
//
// Test1 has been deleted.
Module Example
Public Sub Main()
Dim value As String
Dim toDelete As Boolean = False
' Check whether the environment variable exists.
value = Environment.GetEnvironmentVariable("Test1")
' If necessary, create it.
If value Is Nothing Then
Environment.SetEnvironmentVariable("Test1", "Value1")
toDelete = True
' Now retrieve it.
value = Environment.GetEnvironmentVariable("Test1")
End If
' Display the value.
Console.WriteLine($"Test1: {value}")
Console.WriteLine()
' Confirm that the value can only be retrieved from the process
' environment block if running on a Windows system.
If Environment.OSVersion.Platform = PlatformID.Win32NT Then
Console.WriteLine("Attempting to retrieve Test1 from:")
For Each enumValue As EnvironmentVariableTarget In
[Enum].GetValues(GetType(EnvironmentVariableTarget))
value = Environment.GetEnvironmentVariable("Test1", enumValue)
Console.WriteLine($" {enumValue}: {If(value IsNot Nothing, "found", "not found")}")
Next
Console.WriteLine()
End If
' If we've created it, now delete it.
If toDelete Then
Environment.SetEnvironmentVariable("Test1", Nothing)
' Confirm the deletion.
If Environment.GetEnvironmentVariable("Test1") = Nothing Then
Console.WriteLine("Test1 has been deleted.")
End If
End If
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Test1: Value1
'
' Attempting to retrieve Test1 from:
' Process: found
' User: not found
' Machine: not found
'
' Test1 has been deleted.
'
' The example displays the following output if run on a Unix-based system:
' Test1: Value1
'
' Test1 has been deleted.
Comentários
O GetEnvironmentVariable método recupera o valor de uma variável de ambiente do processo atual.
Nomes de variáveis de ambiente são sensíveis a maiúsculas e minúsculas em sistemas semelhantes a Unix, mas não são sensíveis a maiúsculas e minúsculas no Windows.
Note
As modificações de ambiente em processo feitas por bibliotecas nativas não são vistas por chamadores gerenciados. Por outro lado, essas modificações feitas por chamadores gerenciados não são vistas pelas bibliotecas nativas.
método GetEnvironmentVariable(String)
O GetEnvironmentVariable(String) método recupera uma variável de ambiente somente do bloco de ambiente do processo atual. É equivalente a chamar o método GetEnvironmentVariable(String, EnvironmentVariableTarget) com um valor target 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, variáveis de ambiente por computador e por usuário serão usadas. Por exemplo, uma nova janela de console tem todas as variáveis de ambiente por computador e por usuário definidas no momento em que foi iniciada.
Qualquer variável adicionada ao bloco de processo enquanto o processo é executado, ao chamar o método SetEnvironmentVariable(String, String) ou o método SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor
targetde 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 semelhantes ao Unix
Em sistemas semelhantes ao Unix, 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.
Qualquer variável adicionada ao bloco de processo enquanto o processo é executado, ao chamar o método SetEnvironmentVariable(String, String) ou o método SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor
targetde EnvironmentVariableTarget.Process. Essas variáveis de ambiente persistem até que o aplicativo .NET seja encerrado.
O .NET em sistemas semelhantes a Unix não dá suporte a variáveis de ambiente por computador ou por usuário.
método GetEnvironmentVariable(String, EnvironmentVariableTarget)
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 atual ou o computador local. Todas as variáveis de ambiente por usuário e por computador são automaticamente copiadas 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, variáveis de ambiente adicionadas somente ao bloco de ambiente do processo atual ao chamar o método SetEnvironmentVariable(String, String) ou SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor de target igual a EnvironmentVariableTarget.Process persistem somente durante a duração do processo.
Em sistemas semelhantes ao Unix
Em sistemas semelhantes ao Unix, o método GetEnvironmentVariable(String, EnvironmentVariableTarget) oferece suporte apenas ao valor targetEnvironmentVariableTarget.Process. Chamadas com um valor de target, EnvironmentVariableTarget.Machine ou EnvironmentVariableTarget.User não são suportadas e retornam null.
As variáveis de ambiente por processo são:
Aqueles herdados do processo pai, normalmente o shell usado para invocar
dotnet.exeou iniciar o aplicativo .NET.Aqueles definidos chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um
targetvalor de EnvironmentVariableTarget.Process. Essas variáveis de ambiente persistem somente até que odotnetprocesso ou o aplicativo .NET seja encerrado.
Confira também
Aplica-se a
GetEnvironmentVariable(String, EnvironmentVariableTarget)
- Origem:
- Environment.cs
- Origem:
- Environment.cs
- Origem:
- Environment.cs
- Origem:
- Environment.cs
- Origem:
- Environment.cs
Recupera o valor de uma variável de ambiente do processo atual ou da chave do registro do sistema operacional Windows para o usuário atual ou o computador local.
public:
static System::String ^ GetEnvironmentVariable(System::String ^ variable, EnvironmentVariableTarget target);
public static string? GetEnvironmentVariable(string variable, EnvironmentVariableTarget target);
public static string GetEnvironmentVariable(string variable, EnvironmentVariableTarget target);
static member GetEnvironmentVariable : string * EnvironmentVariableTarget -> string
Public Shared Function GetEnvironmentVariable (variable As String, target As EnvironmentVariableTarget) As String
Parâmetros
- variable
- String
O nome de uma variável de ambiente.
- target
- EnvironmentVariableTarget
Um dos EnvironmentVariableTarget valores. Há suporte apenas Process em .NET em execução em sistemas semelhantes ao Unix.
Retornos
O valor da variável de ambiente especificada pelos variable parâmetros target e null ou se a variável de ambiente não for encontrada.
Exceções
variable é null.
target não é um valor válido EnvironmentVariableTarget .
O chamador não tem a permissão necessária para executar essa operação.
Exemplos
O exemplo a seguir cria variáveis de ambiente para o EnvironmentVariableTarget.Process, EnvironmentVariableTarget.Usere Machine os destinos, verifica se o registro do sistema operacional contém as variáveis de ambiente do usuário e do computador e, em seguida, exclui as variáveis de ambiente. Como .NET em sistemas semelhantes ao Unix não dá suporte a variáveis de ambiente por usuário e por computador, apenas SetEnvironmentVariable(String, String) e SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor de EnvironmentVariableTarget.Process armazenar com êxito uma variável de ambiente para o bloco de ambiente do processo.
using System;
using System.Collections;
using Microsoft.Win32;
class Sample
{
public static void Main()
{
// Environment variable names for default, process, user, and machine targets.
string defaultEnvVar = nameof(defaultEnvVar);
string processEnvVar = nameof(processEnvVar);
string userEnvVar = nameof(userEnvVar);
string machineEnvVar = nameof(machineEnvVar);
string dft = nameof(dft);
string process = nameof(process);
string user = nameof(user);
string machine = nameof(machine);
// Set the environment variable for each target.
Console.WriteLine("Setting environment variables for each target...\n");
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, dft);
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, process,
EnvironmentVariableTarget.Process);
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, user,
EnvironmentVariableTarget.User);
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, machine,
EnvironmentVariableTarget.Machine);
// Define an array of environment variables.
string[] envVars = { defaultEnvVar,processEnvVar, userEnvVar, machineEnvVar };
// Try to get the environment variables from each target.
// The default (no specified target).
Console.WriteLine("Retrieving environment variables from the default target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// The process block.
Console.WriteLine("\nRetrieving environment variables from the Process target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// The user block.
Console.WriteLine("\nRetrieving environment variables from the User target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// The machine block.
Console.WriteLine("\nRetrieving environment variables from the Machine target:");
foreach (var envVar in envVars)
{
var value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine) ?? "(none)";
Console.WriteLine($" {envVar}: {value}");
}
// Delete the environment variable for each target.
Console.WriteLine("\nDeleting environment variables for each target...\n");
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, null);
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, null,
EnvironmentVariableTarget.Process);
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, null,
EnvironmentVariableTarget.User);
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, null,
EnvironmentVariableTarget.Machine);
}
}
// The example displays the following output if run on a Windows system:
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: machine
//
// Deleting environment variables for each target...
//
// The example displays the following output if run on a Unix-based system:
//
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Deleting environment variables for each target...
module Sample
open System
// Environment variable names for default, process, user, and machine targets.
let rec defaultEnvVar = nameof defaultEnvVar
let rec processEnvVar = nameof processEnvVar
let rec userEnvVar = nameof userEnvVar
let rec machineEnvVar = nameof machineEnvVar
let rec dft = nameof dft
let rec proc = nameof proc
let rec user = nameof user
let rec machine = nameof machine
// Set the environment variable for each target.
printfn "Setting environment variables for each target...\n"
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, dft)
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, proc, EnvironmentVariableTarget.Process)
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, user, EnvironmentVariableTarget.User)
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, machine, EnvironmentVariableTarget.Machine)
// Define a list of environment variables.
let envVars = [ defaultEnvVar; processEnvVar; userEnvVar; machineEnvVar ]
// Try to get the environment variables from each target.
// The default (no specified target).
printfn "Retrieving environment variables from the default target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable envVar with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The process block.
printfn "\nRetrieving environment variables from the Process target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The user block.
printfn "\nRetrieving environment variables from the User target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// The machine block.
printfn "\nRetrieving environment variables from the Machine target:"
for envVar in envVars do
let value =
match Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine) with
| null -> "(none)"
| v -> v
printfn $" {envVar}: {value}"
// Delete the environment variable for each target.
printfn "\nDeleting environment variables for each target...\n"
// The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, null)
// The current process.
Environment.SetEnvironmentVariable(processEnvVar, null, EnvironmentVariableTarget.Process)
// The current user.
Environment.SetEnvironmentVariable(userEnvVar, null, EnvironmentVariableTarget.User)
// The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, null, EnvironmentVariableTarget.Machine)
// The example displays the following output if run on a Windows system:
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: user
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: machine
//
// Deleting environment variables for each target...
//
// The example displays the following output if run on a Unix-based system:
//
// Setting environment variables for each target...
//
// Retrieving environment variables from the default target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Process target:
// defaultEnvVar: dft
// processEnvVar: process
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the User target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Retrieving environment variables from the Machine target:
// defaultEnvVar: (none)
// processEnvVar: (none)
// userEnvVar: (none)
// machineEnvVar: (none)
//
// Deleting environment variables for each target...
Imports System.Collections
Imports Microsoft.Win32
Module Sample
Public Sub Main()
' Environment variable names for default, process, user, and machine targets.
Dim defaultEnvVar As String = NameOf(defaultEnvVar)
Dim processEnvVar As String = NameOf(processEnvVar)
Dim userEnvVar As String = NameOf(userEnvVar)
Dim machineEnvVar As String = NameOf(machineEnvVar)
Dim dft As String = NameOf(dft)
Dim process As String = NameOf(process)
Dim user As String = NameOf(user)
Dim machine As String = NameOf(machine)
' Set the environment variable for each target.
Console.WriteLine("Setting environment variables for each target...")
' The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, dft)
' The current process.
Environment.SetEnvironmentVariable(processEnvVar, process,
EnvironmentVariableTarget.Process)
' The current user.
Environment.SetEnvironmentVariable(userEnvVar, user,
EnvironmentVariableTarget.User)
' The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, machine,
EnvironmentVariableTarget.Machine)
Console.WriteLine()
' Define an array of environment variables.
Dim envVars As String() = { defaultEnvVar, processEnvVar, userEnvVar, machineEnvVar }
' Try to get the environment variables from each target.
' The default (no specified target).
Console.WriteLine("Retrieving environment variables from the default target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar)
Console.WriteLine($" {envVar}: {If(value IsNot Nothing, value, "(none)")}")
Next
Console.WriteLine()
' The process block.
Console.WriteLine("Retrieving environment variables from the Process target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Process)
Console.WriteLine($" {envVar}: {If(value IsNot Nothing, value, "(none)")}")
Next
Console.WriteLine()
' The user block.
Console.WriteLine("Retrieving environment variables from the User target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.User)
Console.WriteLine($" {envVar}: {value}")
Next
Console.WriteLine()
' The machine block.
Console.WriteLine("Retrieving environment variables from the Machine target:")
For Each envVar in envVars
Dim value = Environment.GetEnvironmentVariable(envVar, EnvironmentVariableTarget.Machine)
Console.WriteLine($" {envVar}: {value}")
Next
Console.WriteLine()
' Delete the environment variable for each target.
Console.WriteLine("Deleting environment variables for each target...")
' The default target (the current process).
Environment.SetEnvironmentVariable(defaultEnvVar, Nothing)
' The current process.
Environment.SetEnvironmentVariable(processEnvVar, Nothing,
EnvironmentVariableTarget.Process)
' The current user.
Environment.SetEnvironmentVariable(userEnvVar, Nothing,
EnvironmentVariableTarget.User)
' The local machine.
Environment.SetEnvironmentVariable(machineEnvVar, Nothing,
EnvironmentVariableTarget.Machine)
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Setting environment variables for each target...
'
' Retrieving environment variables from the default target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: user
' machineEnvVar: (none)
'
' Retrieving environment variables from the Process target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: user
' machineEnvVar: (none)
'
' Retrieving environment variables from the User target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: user
' machineEnvVar: (none)
'
' Retrieving environment variables from the Machine target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: (none)
' machineEnvVar: machine
'
' Deleting environment variables for each target...
'
' The example displays the following output if run on a Unix-based system:
'
' Setting environment variables for each target...
'
' Retrieving environment variables from the default target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Retrieving environment variables from the Process target:
' defaultEnvVar: dft
' processEnvVar: process
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Retrieving environment variables from the User target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Retrieving environment variables from the Machine target:
' defaultEnvVar: (none)
' processEnvVar: (none)
' userEnvVar: (none)
' machineEnvVar: (none)
'
' Deleting environment variables for each target...
Comentários
O GetEnvironmentVariable método recupera o valor de uma variável de ambiente do processo atual.
Nomes de variáveis de ambiente são sensíveis a maiúsculas e minúsculas em sistemas semelhantes a Unix, mas não são sensíveis a maiúsculas e minúsculas no Windows.
Note
As modificações de ambiente em processo feitas por bibliotecas nativas não são vistas por chamadores gerenciados. Por outro lado, essas modificações feitas por chamadores gerenciados não são vistas pelas bibliotecas nativas.
método GetEnvironmentVariable(String)
O GetEnvironmentVariable(String) método recupera uma variável de ambiente somente do bloco de ambiente do processo atual. É equivalente a chamar o método GetEnvironmentVariable(String, EnvironmentVariableTarget) com um valor target 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, variáveis de ambiente por computador e por usuário serão usadas. Por exemplo, uma nova janela de console tem todas as variáveis de ambiente por computador e por usuário definidas no momento em que foi iniciada.
Qualquer variável adicionada ao bloco de processo enquanto o processo é executado, ao chamar o método SetEnvironmentVariable(String, String) ou o método SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor
targetde 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 semelhantes ao Unix
Em sistemas semelhantes ao Unix, 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.
Qualquer variável adicionada ao bloco de processo enquanto o processo é executado, ao chamar o método SetEnvironmentVariable(String, String) ou o método SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor
targetde EnvironmentVariableTarget.Process. Essas variáveis de ambiente persistem até que o aplicativo .NET seja encerrado.
O .NET em sistemas semelhantes a Unix não dá suporte a variáveis de ambiente por computador ou por usuário.
método GetEnvironmentVariable(String, EnvironmentVariableTarget)
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 atual ou o computador local. Todas as variáveis de ambiente por usuário e por computador são automaticamente copiadas 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, variáveis de ambiente adicionadas somente ao bloco de ambiente do processo atual ao chamar o método SetEnvironmentVariable(String, String) ou SetEnvironmentVariable(String, String, EnvironmentVariableTarget) com um valor de target igual a EnvironmentVariableTarget.Process persistem somente durante a duração do processo.
Em sistemas semelhantes ao Unix
Em sistemas semelhantes ao Unix, o método GetEnvironmentVariable(String, EnvironmentVariableTarget) oferece suporte apenas ao valor targetEnvironmentVariableTarget.Process. Chamadas com um valor de target, EnvironmentVariableTarget.Machine ou EnvironmentVariableTarget.User não são suportadas e retornam null.
As variáveis de ambiente por processo são:
Aqueles herdados do processo pai, normalmente o shell usado para invocar
dotnet.exeou iniciar o aplicativo .NET.Aqueles definidos chamando o SetEnvironmentVariable(String, String) método ou o SetEnvironmentVariable(String, String, EnvironmentVariableTarget) método com um
targetvalor de EnvironmentVariableTarget.Process. Essas variáveis de ambiente persistem somente até que odotnetprocesso ou o aplicativo .NET seja encerrado.
Confira também
- SetEnvironmentVariable(String, String, EnvironmentVariableTarget)
- GetEnvironmentVariables()
- EnvironmentVariableTarget