GUI
指的就是叫出以下畫面來修改
有很多入口可以進到以上畫面
- 控制台 → 系統及安全性 → 系統 → 進階系統設定
- 本機滑鼠右鍵 → 內容 → 進階系統設定
- Windows + R → SystemPropertiesAdvanced
- Windows + R → sysdm.cpl → 進階
- CMD →
rundll32 sysdm.cpl,EditEnvironmentVariables
- Windows + R →
powershell -command "&{start-process rundll32.exe sysdm.cpl,EditEnvironmentVariables -verb RunAs}
- Windows → 編輯系統環境變數
CMD
set
語法:SET [variable=[string]]
rem 顯示全部的環境變數
set
rem 顯示指定的環境變數
set test
rem 設定環境變數
set test=abc
只在當前視窗(current CMD session)生效
若要永久、全面生效必須使用其他指令
setx
語法:SETX var value [/M]
rem 新增、修改使用者變數 HKEY_CURRENT_USER
setx test abc
rem 新增、修改系統變數 HKEY_LOCAL_MACHINE
setx test abc /m
- %value% 要以引號包起來:”%value%”
- 新增系統變數必須以系統管理員身分執行
- 開新視窗才生效
- 刪除要用 reg 指令
reg
查詢的語法:REG QUERY KeyName [/v ValueName]
新增、修改的語法:REG ADD KeyName /v ValueName /d Data /t Type /f
刪除的語法:REG DELETE KeyName /v ValueName /f
rem 列出全部的使用者變數
reg query "HKEY_CURRENT_USER\Environment"
rem 新增使用者變數
reg add "HKEY_CURRENT_USER\Environment" /v test /d abc /t REG_EXPAND_SZ /f
rem 列出指定的使用者變數
reg query "HKEY_CURRENT_USER\Environment" /v test
rem 刪除指定的使用者變數
reg delete "HKEY_CURRENT_USER\Environment" /v test /f
rem 列出全部的系統變數
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
rem 新增系統變數
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v test /d abc /t REG_EXPAND_SZ /f
rem 列出指定的系統變數
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v test
rem 刪除指定的系統變數
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v test /f
註:
- KeyName 若包含空白,必須以雙引號包起來
- 使用者變數 KeyName:
HKEY_CURRENT_USER\Environment
- 系統變數 KeyName:
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
- /f 是略過提示強制執行,因此要小心
- 對系統變數的新增刪除必須以系統管理員身分執行
- ^%systemroot^% → %systemroot%
%systemroot% → C:\WINDOWS
wmic
類似資料庫的操作方式
rem 列出所有環境變數
wmic environment
rem 列出符合條件的環境變數
wmic environment where "name='path'"
rem 列出使用者變數
wmic environment where "systemvariable=false"
wmic environment where "username='%userdomain%\\%username%'"
rem 列出系統變數
wmic environment where "systemvariable=true"
wmic environment where "username='<system>'"
rem 只顯示指定欄位
wmic environment where "name='path'" get name, variablevalue
rem 新增使用者變數
wmic environment create username="%username%", name="test", variablevalue="abc"
rem 新增系統變數
wmic environment create username="<system>", name="test", variablevalue="abc"
rem 修改符合條件的環境變數
wmic environment where "name='test'" set variablevalue="abcde"
rem 刪除符合條件的環境變數
wmic environment where "name='test'" delete
- 開新視窗才生效
- 正在執行的程式無法套用,需要重啟
- 刪除後 cmd 仍暫存