System.Environment.GetEnvironmentVariable 方法
本文提供此 API 參考文件的補充備註。
方法 GetEnvironmentVariable 會從目前進程擷取環境變數的值。
類似 Unix 的系統上,環境變數名稱會區分大小寫,但在 Windows 上不會區分大小寫。
注意
Managed 呼叫端不會看到原生連結庫所進行的進程環境修改。 相反地,原生連結庫不會看到Managed呼叫端所做的這類修改。
GetEnvironmentVariable(String) 方法
方法 GetEnvironmentVariable(String) 只會從目前進程的環境區塊擷取環境變數。 它相當於使用 target
的值EnvironmentVariableTarget.Process呼叫 GetEnvironmentVariable(String, EnvironmentVariableTarget) 方法。
若要擷取所有環境變數及其值,請呼叫 GetEnvironmentVariables 方法。
在 Windows 系統上
在 Windows 系統上,目前進程的環境區塊包括:
由建立它之父進程提供給它的所有環境變數。 例如,從主控台視窗啟動的 .NET 應用程式會繼承所有控制台視窗的環境變數。
如果沒有父進程,則會改用每部計算機和每個用戶環境變數。 例如,新的控制台視窗具有啟動時定義的所有每部計算機和每個用戶環境變數。
在進程執行時加入至進程區塊的任何變數,方法是呼叫 SetEnvironmentVariable(String, String) 具有 值EnvironmentVariableTarget.Process的方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 方法
target
。 這些環境變數會持續存在,直到 .NET 應用程式終止為止。
如果在進程啟動之後建立環境變數,您可以使用此方法只擷取透過呼叫 SetEnvironmentVariable(String, String) 方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 具有 target
值EnvironmentVariableTarget.Process 的方法所建立的變數。
在類似 Unix 的系統上
在類似 Unix 的系統上,目前進程的環境區塊包含下列環境變數:
由建立它之父進程提供給它的所有環境變數。 對於從殼層啟動的 .NET 應用程式,這包括殼層中定義的所有環境變數。
在進程執行時加入至進程區塊的任何變數,方法是呼叫 SetEnvironmentVariable(String, String) 具有 值EnvironmentVariableTarget.Process的方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 方法
target
。 這些環境變數會持續存在,直到 .NET 應用程式終止為止。
類似 Unix 系統上的 .NET 不支援每部電腦或每個用戶環境變數。
GetEnvironmentVariable(String, EnvironmentVariableTarget) 方法
若要擷取所有環境變數及其值,請呼叫 GetEnvironmentVariables 方法。
在 Windows 系統上
在 Windows 上 target
,參數會指定環境變數是從目前進程擷取,還是從目前使用者或本機計算機的 Windows 操作系統登錄機碼擷取。 所有每個使用者和每部計算機環境變數都會自動複製到目前進程的環境區塊中,如同建立 .NET 進程之父進程可用的任何其他環境變數。 不過,只有將環境變數新增至目前進程的環境區塊,方法是 SetEnvironmentVariable(String, String) 呼叫 方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 方法 target
,其值 EnvironmentVariableTarget.Process 只有在進程持續期間才會保存。
在類似 Unix 的系統上
在類似 Unix 的系統上, GetEnvironmentVariable(String, EnvironmentVariableTarget)
方法僅支援 target
的值 EnvironmentVariableTarget.Process 。 不支援具有 target
或 EnvironmentVariableTarget.User 值的EnvironmentVariableTarget.Machine呼叫,並傳回 null
。
每個進程環境變數如下:
繼承自父進程,通常是用來叫
dotnet.exe
用或啟動 .NET 應用程式的殼層。藉由呼叫 SetEnvironmentVariable(String, String) 方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 具有
target
值之 方法所定義的方法 EnvironmentVariableTarget.Process。 這些環境變數只會保存,dotnet
直到進程或 .NET 應用程式終止為止。