在「系統屬性 → 進階 → 環境變數」新增或修改變數(如 PATH、JAVA_HOME)後,舊有的 CMD / PowerShell 視窗不會自動同步,傳統做法是「重開視窗」甚至「重啟電腦」。其實只需一行指令,即可觸發系統廣播 WM_SETTINGCHANGE 訊息,讓所有新開啟的程式立即讀取最新值。
CMD 視窗內的環境區塊只是系統環境區塊的複製品。當在 CMD 執行 set VAR=value 修改副本時,CMD 會呼叫 SetEnvironmentVariable API,進而觸發系統發送 WM_SETTINGCHANGE 廣播。所有之後啟動的進程會重新讀取登錄中的最新環境變數。
PATH 後,不要關閉對話框。set PATH=C:set 指令)。echo %PATH%,即可看到剛才在 GUI 設定的新值已生效。[Environment]::SetEnvironmentVariable('PATH', $env:PATH, 'User') 同樣會觸發廣播。refreshenv 指令,一鍵同步當前 Session。