共用方式為


System.Environment.GetEnvironmentVariable 方法

本文提供此 API 參考文件的補充備註。

方法 GetEnvironmentVariable 會從目前進程擷取環境變數的值。

類似 Unix 的系統上,環境變數名稱會區分大小寫,但在 Windows 上不會區分大小寫。

備註

受管理的呼叫端無法察覺到由原生庫所做的環境修改。 相反地,本機程式庫不會看到受管理呼叫者所做的這類修改。

GetEnvironmentVariable(String) 方法

方法 GetEnvironmentVariable(String) 只會從目前進程的環境區塊擷取環境變數。 它相當於以GetEnvironmentVariable(String, EnvironmentVariableTarget)值為target呼叫EnvironmentVariableTarget.Process方法。

若要擷取所有環境變數及其值,請呼叫 GetEnvironmentVariables 方法。

在 Windows 系統上

在 Windows 系統上,目前進程的環境區塊包括:

  • 由創建它的父進程提供給它的所有環境變數。 例如,從主控台視窗啟動的 .NET 應用程式會繼承所有控制台視窗的環境變數。

    如果沒有父進程,則會改用每部計算機和每個用戶環境變數。 例如,新的控制台視窗具有啟動時定義的所有每部計算機和每個用戶環境變數。

  • 在進程執行期間,透過呼叫 SetEnvironmentVariable(String, String) 方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 方法,並設置 target 具有 EnvironmentVariableTarget.Process 值,將任何變數加入至進程區塊。 這些環境變數會持續存在,直到 .NET 應用程式終止為止。

如果在進程啟動之後建立環境變數,您可以使用此方法只擷取透過呼叫 SetEnvironmentVariable(String, String) 方法或 SetEnvironmentVariable(String, String, EnvironmentVariableTarget) 具有 targetEnvironmentVariableTarget.Process 的方法所建立的變數。

在類似 Unix 的系統上

在類似 Unix 的系統上,目前進程的環境區塊包含下列環境變數:

類似 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 。 不支援具有 targetEnvironmentVariableTarget.Machine 值的EnvironmentVariableTarget.User呼叫,並傳回 null

每個進程環境變數如下: