2019-07-20

如果透過 windows batch command 來新增環境變數

我會有這個需求,主要是因為工作的地方有 AD 權限的管制,只要執行需要提升權限的程式時都需要請資訊部門的人來 key 管理帳密,但理論上 user 應該是對自己的東西有權限的,只是 windows 在叫出環境變數的地方是有小盾牌要提權的…所以我才想到使用 batch command 的方式。

batch command 的方式有分一般跟進階兩種
以下都以設定 JAVA_HOME 為例

一般:
set JAVA_HOME="xxxxxx\jdk-xxxx"
set PATH=%PATH%;%JAVA_HOME%\bin

進階:
setx JAVA_HOME "xxxxx\jdk-xxxx"
setx PATH "%PATH%;%JAVA_HOME%\bin"

一般之所以一般,是因為這個方式的有效時間只在那個作用視窗中,也就是你打開 cmd 後,下了那兩行指令,然後把 cmd 視窗關掉,這時就失效了,因為該方式並沒有寫到真正的環境變數裡面。

進階的方式就有了,視窗關掉後依然有效,甚至重開機都是有效的…
那要怎麼刪除?
這就比較麻煩了,如果只是要讓路徑失效,可以使用
setx JAVA_HOME ""
的方式…但 %JAVA_HOME% 這個變數還是存在,只是是空的,如果要刪除這個變數或請管理員來開環境變數的gui畫面來刪除,或者是用 reg delete 的方式,但這應該也要權限

沒有留言: