環境變數
每個進程都有一個環境區塊,其中包含一組環境變數及其值。 環境變數有兩種類型:用戶環境變數(針對每個使用者設定)和系統環境變數(針對每個人設定)。
子進程預設會繼承其父進程的環境變數。 命令處理器啟動的程式會繼承命令處理器的環境變數。 若要為子進程指定不同的環境,請建立新的環境區塊,並將指標當做參數傳遞至 CreateProcess 函式。
命令處理器會提供 集 命令來顯示其環境區塊或建立新的環境變數。 您也可以從 [控制面板]選取 [系統]、選取 [進階系統設定],然後按兩下 [環境變數],以檢視或修改環境變數。
每個環境區塊都包含下列格式的環境變數:
-
Var1=value1\0
Var2=Value2\0
Var3=value3\0
...
VarN=ValueN\0\0
環境變數的名稱不能包含等號 (=)。
GetEnvironmentStrings 函式會傳回呼叫進程的環境區塊指標。 這應該視為唯讀區塊;請勿直接修改。 請改用 SetEnvironmentVariable 函式來變更環境變數。 當您完成從 getEnvironmentStrings getEnvironmentStrings取得的環境區塊時,請呼叫 FreeEnvironmentStrings 函式以釋放區塊。
呼叫 SetEnvironmentVariable 不會影響系統環境變數。 若要以程式設計方式新增或修改系統環境變數,請將它們新增至 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment 登錄機碼,然後廣播 WM_SETTINGCHANGE 訊息,並將 lParam 設定為字元串 “Environment”。 這可讓殼層等應用程式挑選您的更新。
使用者定義環境變數的大小上限為32,767個字元。 環境區塊的大小沒有技術限制。 不過,根據用來存取區塊的機制,有實際限制。 例如,批處理檔無法設定超過命令行長度上限的變數。
Windows Server 2003 和 Windows XP: 進程環境區塊的大小上限為 32,767 個字元。 從 Windows Vista 和 Windows Server 2008 開始,環境區塊的大小沒有技術限制。
GetEnvironmentVariable 函式會判斷指定的變數是否定義於呼叫進程的環境中,如果是的話,其值為何。
若要擷取指定用戶的環境區塊複本,請使用 CreateEnvironmentBlock 函式。
若要展開環境變數字串,請使用 ExpandEnvironmentStrings 函式。
相關主題