2016年10月8日 星期六

如何利用 [CMD 批次檔 .bat] 設定環境變數 永久與暫時

如何利用 [CMD 批次檔 .bat] 設定環境變數 永久與暫時


這裡將會實際做一個自動安裝JAVA的批次檔 add-java-path.bat
並讓他自動設定系統環境變數或使用者環境變數,的批次檔當範例
批次檔需要放置JAVA目錄底下執行

 


設定暫時變數

@echo off & Title JAVA_PATH By Charlotte.HonG& Color 1A

set "PATH=%~dp0jdk1.8.0_101\bin;%PATH%"

exit /b
這只對當前環境中的變數 PATH 修改而已,沒有實際修改到系統。
1. 雙引號的位置要包含到變數。
2. %~dp0 指的是當前批次檔的所在位置。 
3. 追加的路徑寫在 %PATH% 前優先級會比較高。



設定永久變數

新增至環境變數
@echo off & Title JAVA_PATH By Charlotte.HonG& Color 1A

set str=%PATH%;%~dp0jdk1.8.0_101\bin
setx /m PATH "%str%"

exit /b

新增至自定義變數
@echo off & Title JAVA_PATH By Charlotte.HonG& Color 1A

set str=%~dp0jdk1.8.0_101
setx /m JAVA_HOME "%str%"

exit /b
%PATH% 是舊有的環境變數,/m 是系統


如果沒有加 /m 會新增到使用者那邊去






小技巧

批次檔或軟體開啟時會載入系統變數
所以更改後如果軟體在這之前就開啟了
軟體必須重啟才能套用

 

範例

利用一個批次檔安裝 Java 並在安裝完畢執行一個
需要使用 Java 變數的軟體,比如說 Android Studio

分析給你看會出什麼意外

開啟bat時環境並沒有java的變數
利用批次檔安裝 Java 並新增永久變數
此時該批次檔還是沒有 Java 的變數必須等到重啟才有
於是你用他開啟 Android Studio 繼承該bat的環境變數
啟動失敗
-
解決辦法就是暫時變數與永久變數一起修改

行查看環境變數

想要一行一行查看環境變數可以使用
ECHO.%PATH:;= & ECHO.%




問題

批次檔1024長度限制

環境變數超出1024字元會出問題,因為批次檔的關係最長支援到2048,實際上手動到系統內設置是可以超過1024的。
解決方案用 Powershell
cmd我也找不到什麼好方法,我們還是使用現代工具來解決;這個其實從Win7就開始有了,不用太擔心支援度的問題,只是幾乎沒怎麼被廣泛利用。到了Win10 1704版微軟才強制推行。
使用方法可以直接在開始搜索 PowerSehll 點擊執行,或直接在 CMD 中輸入也可以。
詳情請看站內連結:https://charlottehong.blogspot.tw/2017/07/cmd-2048.html



沒有留言:

張貼留言