Metody System.Environment.GetEnvironmentVariable
Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.
Metoda GetEnvironmentVariable pobiera wartość zmiennej środowiskowej z bieżącego procesu.
Nazwy zmiennych środowiskowych są wrażliwe na wielkość liter w systemach przypominających system Unix, ale nie są uwzględniane wielkości liter w systemie Windows.
Uwaga
Modyfikacje środowiska przetwarzania wprowadzone przez biblioteki natywne nie są widoczne przez zarządzane osoby wywołujące. Z drugiej strony takie modyfikacje wprowadzone przez zarządzane obiekty wywołujące nie są widoczne przez biblioteki natywne.
GetEnvironmentVariable(String) Metoda
Metoda GetEnvironmentVariable(String) pobiera zmienną środowiskową tylko z bloku środowiskowego bieżącego procesu. Jest to równoważne wywołaniu GetEnvironmentVariable(String, EnvironmentVariableTarget) metody z wartością target
EnvironmentVariableTarget.Process.
Aby pobrać wszystkie zmienne środowiskowe wraz z ich wartościami, wywołaj metodę GetEnvironmentVariables .
W systemach Windows
W systemach Windows blok środowiska bieżącego procesu obejmuje:
Wszystkie zmienne środowiskowe udostępniane przez proces nadrzędny, który go utworzył. Na przykład aplikacja .NET uruchomiona z okna konsoli dziedziczy wszystkie zmienne środowiskowe okna konsoli.
Jeśli nie ma procesu nadrzędnego, zamiast tego są używane zmienne środowiskowe dla poszczególnych maszyn i poszczególnych użytkowników. Na przykład nowe okno konsoli zawiera wszystkie zmienne środowiskowe dla poszczególnych maszyn i poszczególnych użytkowników zdefiniowane w momencie jego uruchomienia.
Wszystkie zmienne dodane do bloku procesu podczas uruchamiania procesu przez wywołanie SetEnvironmentVariable(String, String) metody lub SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metody z wartością
target
EnvironmentVariableTarget.Process. Te zmienne środowiskowe będą utrzymywane do momentu zakończenia działania aplikacji .NET.
Jeśli zmienne środowiskowe są tworzone po rozpoczęciu procesu, możesz użyć tej metody, aby pobrać tylko te zmienne, które zostały utworzone przez wywołanie SetEnvironmentVariable(String, String) metody lub SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metody z wartością target
.EnvironmentVariableTarget.Process.
W systemach przypominających system Unix
W systemach przypominających system Unix blok środowiska bieżącego procesu zawiera następujące zmienne środowiskowe:
Wszystkie zmienne środowiskowe udostępniane przez proces nadrzędny, który go utworzył. W przypadku aplikacji platformy .NET uruchomionych z powłoki obejmuje to wszystkie zmienne środowiskowe zdefiniowane w powłoce.
Wszystkie zmienne dodane do bloku procesu podczas uruchamiania procesu przez wywołanie SetEnvironmentVariable(String, String) metody lub SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metody z wartością
target
EnvironmentVariableTarget.Process. Te zmienne środowiskowe będą utrzymywane do momentu zakończenia działania aplikacji .NET.
Platforma .NET w systemach przypominających system Unix nie obsługuje zmiennych środowiskowych dla poszczególnych maszyn ani poszczególnych użytkowników.
GetEnvironmentVariable(String, EnvironmentVariableTarget) Metoda
Aby pobrać wszystkie zmienne środowiskowe wraz z ich wartościami, wywołaj metodę GetEnvironmentVariables .
W systemach Windows
W systemie Windows parametr określa, target
czy zmienna środowiskowa jest pobierana z bieżącego procesu, czy z klucza rejestru systemu operacyjnego Windows dla bieżącego użytkownika lub komputera lokalnego. Wszystkie zmienne środowiskowe dla użytkownika i maszyny są automatycznie kopiowane do bloku środowiskowego bieżącego procesu, podobnie jak wszystkie inne zmienne środowiskowe dostępne dla procesu nadrzędnego, który utworzył proces platformy .NET. Jednak zmienne środowiskowe dodane tylko do bloku środowiskowego bieżącego procesu przez wywołanie SetEnvironmentVariable(String, String) metody lub SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metody o target
wartości EnvironmentVariableTarget.Process trwałej tylko przez czas trwania procesu.
W systemach przypominających system Unix
W systemach GetEnvironmentVariable(String, EnvironmentVariableTarget)
przypominających system Unix metoda obsługuje target
tylko wartość EnvironmentVariableTarget.Process . Wywołania z wartością EnvironmentVariableTarget.Machinetarget
lub EnvironmentVariableTarget.User nie są obsługiwane i zwracają wartość null
.
Zmienne środowiskowe dla procesu to:
Te dziedziczone z procesu nadrzędnego, zazwyczaj powłoka używana do wywoływania
dotnet.exe
lub uruchamiania aplikacji .NET.Te zdefiniowane przez wywołanie SetEnvironmentVariable(String, String) metody lub SetEnvironmentVariable(String, String, EnvironmentVariableTarget) metody z wartością
target
EnvironmentVariableTarget.Process. Te zmienne środowiskowe są utrwalane tylko do momentudotnet
zakończenia procesu lub aplikacji platformy .NET.