URLhttps://learnscript.net/zh-hant/programming-reference/environment-variables/set-environment-variables-in-windows/
    複製連結移至說明  範例

    如何設定 Windows 環境變數

    閱讀 6:30·字數 1953·更新 
    Youtube 頻道
    訂閱 375

    Windows 環境變數

    在 Windows 系統中,系統環境變數對所有使用者有效,而使用者環境變數僅對使用者自身有效。

    Windows 環境變數儲存在哪裏?

    Windows 中的環境變數儲存在登錄檔中,其中系統環境變數對應的登錄檔機碼為HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment,使用者環境變數對應的登錄檔機碼為HKEY_CURRENT_USER\Environment

    設定 Windows 系統環境變數需要較高的權限

    設定 Windows 系統環境變數需要較高的權限,這可能會要求你提供相關賬戶的驗證資訊。

    使用介面設定 Windows 環境變數

    對於 Windows 10/11,可以在搜尋方塊中輸入環境變數,然後從結果中選擇對應的項目,以在快顯的環境變數視窗中編輯系統環境變數或使用者環境變數。如果快顯的是系統內容視窗,則需要繼續點選環境變數按鈕

    對於較老的 Windows 版本,可以嘗試通過主控臺:系統 | 進階系統設定開啟系統內容視窗

    通過環境變數視窗編輯的 Windows 環境變數可能無法立即生效

    當你通過環境變數視窗編輯 Windows 環境變數後,這些環境變數的改變可能不會被正在執行的命令列應用識別(比如,命令提示字元),對於這種情況,可嘗試重新啟動命令列應用。

    使用命令提示字元設定 Windows 環境變數

    命令提示字元setx命令同樣可以設定 Windows 環境變數,其格式如下。

    setx <variable> <value> [/m]
    variable 參數

    variable參數為環境變數的名稱。

    value 參數

    value參數為環境變數的值,該參數可通過成對的%傳回其他環境變數的值,比如,書寫%PATH%將傳回環境變數PATH的值(當環境變數PATH不存在時,將傳回%PATH%本身)。如果希望參考環境變數,而不是直接傳回其值,可使用^%進行跳脫,比如,^%PATH^%是對環境變數PATH的參考。

    當參數value對應的值包含空白字元時,需要使用"括住,比如,"Hello World"。這條規則也適用於%傳回的值,當環境變數PATH含有空白字元時,需要使用"將其括住,"%PATH%"

    value參數的值最多可包含 1024 個字元,超出此範圍的部分將被裁剪。如果你沒有提供value參數,那麽setx命令將顯示相關環境變數的資訊。

    /m 選項

    /m選項表示設定系統環境變數,要啟用該選項,應確保使用管理員身分執行命令提示字元,或使用/u/p選項提供管理員賬戶憑證。

    使用命令 setx 設定 Windows 環境變數後需要重新啟動命令提示字元

    在使用命令setx設定環境變數後,需要重新啟動命令提示字元才能識別發生的改動。

    Windows 命令提示字元中的 %PATH% 是一個組合值

    某些環境變數可能會被系統,命令提示字元或一些程式修改。比如,命令提示字元中的%PATH%是系統環境變數PATH與使用者環境變數PATH的組合,使用setx PATH "%PATH%;.\bin\"可能會寫入重複的內容。

    跳脫特殊字元

    想要取得更多關於命令列跳脫的內容,你可以檢視如何在命令列中跳脫特殊字元一節。

    下面的命令將使用者環境變數LS設定為learnscript.net

    setx LS learnscript.net

    下面的命令將使用者環境變數LSPATH,設定為LS表示的值learnscript.net與一段網址的組合,LSPATH的值將是learnscript.net/welcome/play/。如果之後修改LS,那麽對LSPATH不會有任何影響。

    setx LSPATH %LS%/welcome/play/

    嘗試使用^%LSPATH中參考環境變數LS,當LS的值發生變化時,LSPATH也將改變。

    setx LSPATH ^%LS^%/welcome/play/

    設定使用者環境變數LSTITLE,將^%排除在"之外,並使用成對的"包含了多個含有空格的內容。

    setx LSTITLE "Is "^%LS^%" not bad?"

    嘗試使用"括住含有空格的內容,如果環境變數MYNAME不存在,那麽LSTITLE的值將是Welcome %MYNAME% to learnscript.net

    setx LSTITLE "Welcome %MYNAME% to %LS%"

    使用 PowerShell 設定 Windows 環境變數

    使用方法GetEnvironmentVariableSetEnvironmentVariable,你可以在 PowerShell 中取得或設定環境變數,其格式如下。

    GetEnvironmentVariable(variable, target)
    SetEnvironmentVariable(variable, value, target)

    variable 參數

    variable參數為環境變數的名稱。

    value 參數

    value參數為環境變數的值,可以使用%表示對其他環境變數的參考,比如,%OS%,他的效果類似於setx命令中的^%OS^%

    target 參數

    target參數為環境變數的位置,為該參數傳遞字串'Machine',將取得或設定系統環境變數,傳遞'User'則取得或設定使用者環境變數。

    下面的命令使用SetEnvironmentVariable方法設定了使用者環境變數LS

    [Environment]::SetEnvironmentVariable('LS', 'learnscript.net', 'User')

    下面的命令使用%LS%參考環境變數LSLSPATH的值會在LS被修改後發生變化。

    [Environment]::SetEnvironmentVariable('LSPATH', '%LS%/welcome/play/', 'User')

    下面的命令使用GetEnvironmentVariable取得使用者環境變數LS的值,並將其寫入到使用者環境變數LSTITLE中。

    [Environment]::SetEnvironmentVariable('LSTITLE', [Environment]::GetEnvironmentVariable("LS", "User") + ' is here', 'User')