我必須在不同的Windows機器上設置環境變量,但是我不想通過進入“我的電腦”的屬性屏幕來手動更改它們我想從命令行使用批處理文件來執行此操作。據我了解,使用set只會更改我將在命令窗口中調用的進程的變量。我想肯定地進行設置,因此稍后,當運行新進程時,它將使用我設置的那些新設置。有沒有辦法從命令行執行此操作?
3 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
使用SETX命令(請注意'x'后綴)來設置在cmd窗口關閉后仍然存在的變量。
例如,設置一個值為“ bar”的環境變量“ foo”:
setx foo bar
盡管值得一讀的是打印用法(setx /?)時顯示的“注釋”,尤其是:
2)在本地系統上,此工具創建或修改的變量將在以后的命令窗口中可用,但在當前的CMD.exe命令窗口中不可用。
3)在遠程系統上,此工具創建或修改的變量將在下一次登錄會話時可用。
在PowerShell中,[Environment] :: SetEnvironmentVariable命令。

皈依舞
TA貢獻1851條經驗 獲得超3個贊
有關環境變量的MSDN文檔告訴您該怎么做:
要以編程方式添加或修改系統環境變量,請將它們添加到HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ Environment注冊表項中,然后廣播將lParam設置為字符串“ Environment” 的WM_SETTINGCHANGE消息。這使應用程序(例如外殼程序)可以獲取您的更新。
您當然需要管理員權限才能執行此操作。我不知道從Windows批處理中廣播Windows消息的方法,因此您需要編寫一個小程序來執行此操作。
- 3 回答
- 0 關注
- 587 瀏覽
添加回答
舉報
0/150
提交
取消