變數的使用

Batch變數的使用與設置,其實相當簡單。之所以會整理這篇,是因為看不懂別人batch中變數特殊寫法,在我了解後分享給大家。而這些變數的特殊用法,其實也可以透過set /?指令看到。

要修改一個變數只要透過Set指令即可,而要去使用這個變數可以用%將它括起來:

set CMD=java
echo %CMD%
上述的batch會在螢幕上顯示出java字眼。系統中在cmd執行後,就會有預設的變數產生,也就是環境變數。要看到這些環境變數,可以透過set的指令:
C:\Users\TonyLin>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\TonyLin\AppData\Roaming
asl.log=Destination=file
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=TONYLIN-PC
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO

假如只想取得變數中的某些區段,可以採下面的做法:

C:\Users\TonyLin>set cmd=javac
C:\Users\TonyLin>echo %cmd:~0,4%
java
可以看到在cmd後多了:~0,4,這代表著要從index 0開始取4個字元。目前有用過的情況,是parse %date%這個變數內容,去取得今天星期幾,當作備份資料檔名的一部分。
如果使用負數,則是由index往前數,向下面這個範例是取得%cmd%最後一個字元。
C:\Users\TonyLin>set cmd=javac
C:\Users\TonyLin>echo %cmd:~-1%
c