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的環境變數
啟動失敗
-
解決辦法就是暫時變數與永久變數一起修改

行查看環境變數

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


問題

批次檔2048長度限制

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

4 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 你好我已綁定台灣信用卡,我忘了是用台胞證還是用護照總之在深圳開了中國銀行的儲蓄卡,我如何使用微信提款,開中國銀行儲蓄卡時預留的是台灣手機號碼,在提款時微信一直提示手機號碼格式錯誤,是否一定要大陸的手機才可以

    回覆刪除
    回覆
    1. 我沒辦過大陸的銀行卡,不過我想問題只是出在微信這邊只接受大陸號碼;所以你可以試試看申辦一個門號,用來驗證微信這邊即可。

      門號的部分網拍可以買到預付卡,不過我不確定是否安全(突然被停掉或是突然收不到。)

      刪除
    2. 我知道很多台灣人這這買預付卡門號就養著定期存錢用的;近期不會去大陸這個或許是個好方法。

      刪除