set命令
set命令用于設(shè)置當(dāng)前cmd窗口中的環(huán)境變量,只在當(dāng)前cmd窗口有效,cmd窗口關(guān)閉后將會(huì)失效,而其不會(huì)影響到系統(tǒng)中保存的用戶環(huán)境變量。
setx命令
setx設(shè)置永久用戶環(huán)境變量
setx env_name env_value
注意:有的路徑中會(huì)帶有空格,所以最好用雙引號(hào)把變量和值都包裹起來(lái),也就是寫(xiě)成如下形式:
setx "env_name" "env_value"
例,追加一個(gè)路徑到用戶path環(huán)境變量中:
setx "path" "D:\test;%path%"
setx設(shè)置永久系統(tǒng)環(huán)境變量
setx加上/m參數(shù)表示設(shè)置的是系統(tǒng)的環(huán)境變量,格式如下所示:
setx env_name env_value /m
注意:有的路徑中會(huì)帶有空格,所以最好用雙引號(hào)把變量和值都包裹起來(lái),也就是寫(xiě)成如下形式:
setx "env_name" "env_value" /m
例如,設(shè)置當(dāng)前路徑%cd%到系統(tǒng)環(huán)境環(huán)境變量中:
setx "Path" "%cd%;%path%" /m
注意:setx設(shè)置環(huán)境變量后,將在新打開(kāi)的終端中生效,當(dāng)前終端不會(huì)立即生效。
注意:setx可能會(huì)在環(huán)境變量中設(shè)置多個(gè)相同的值,例如,在當(dāng)前cmd窗口中運(yùn)行:
setx "Path" "D:\test;%path%" /m
然后再重新打開(kāi)cmd窗口,進(jìn)入D:\test路徑,然后再次運(yùn)行:
setx "Path" "D:\test;%path%" /m
這樣D:\test將會(huì)在path環(huán)境變量中出現(xiàn)兩次.
用setx設(shè)置永久環(huán)境變量及注意事項(xiàng)
設(shè)置用戶環(huán)境變量
setx ENV_NAME env_value
設(shè)置系統(tǒng)環(huán)境變量
setx ENV_NAME env_value /m
注意1.
在某些情況下會(huì)出現(xiàn)“setx 無(wú)效語(yǔ)法 默認(rèn)選項(xiàng)不能超過(guò)'2'次”的錯(cuò)誤,據(jù)信是因?yàn)樵鹊沫h(huán)境變量中存在空格導(dǎo)致的,可使用雙引號(hào)進(jìn)行避免。
注意2.
setx設(shè)置環(huán)境變量后,將在新打開(kāi)的終端中生效,當(dāng)前終端不會(huì)立即生效。所以當(dāng)設(shè)置path這樣內(nèi)容較為豐富的環(huán)境變量時(shí),要一次到位,而不要針對(duì)同一變量反復(fù)調(diào)用setx。例如:
正確做法:
set path_=%Path%
setx “Path” “%path_%;newpath1;newpath2” /m
錯(cuò)誤做法:
set path_=%Path%
setx “Path” “%path_%;newpath1” /m
setx “Path” “%path_%;newpath2” /m
上述錯(cuò)誤的做法將會(huì)漏掉newpath1。