2016年10月8日 星期六

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

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

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

設定暫時變數

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

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

exit
其實就是對PATH修改而已,不用擔心改壞了重啟CMD就好

設定永久變數

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

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

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

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

exit
這裡的 %PATH% 是指舊有的環境變數
可不要把舊有的變數給刪除了
這裡的 /m 是指系統
如果沒有加會新增到使用者那邊去

小技巧

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

範例

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

分析給你看會出什麼意外

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


問題

批次檔2048長度限制

環境變數超出2048字元會出問題,因為批次檔的關係最長支援到2048,實際上手動到系統內設置是可以超過2048的。

行查看環境變數

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

解決方案 Powershell

cmd我也找不到什麼好方法,我們還是使用現代工具來解決。使用方法可以搜索PowerSehll開啟執行,或直接在CMD中輸入也可以。

1 則留言: