1. 程式人生 > >bat的變數與命令set的用法

bat的變數與命令set的用法

set 功能一覽
[設定變數]
格式:set 變數名=變數值
詳細:被設定的變數以%變數名%引用

[取消變數]
格式:set 變數名=
詳細:取消後的變數若被引用%變數名%將為空

[展示變數]
格式:set 變數名
詳細:展示以變數名開頭的所有變數的值

[列出所有可用的變數]
格式:set

[計算器]
格式:set /a 表示式
示例:set /a 1+2*3 輸出 7

[設定變數為表示式計算後的值]
set a=1+2

echo %a% ==>輸出1+2

set /a a=1+2
echo %a% ==>輸出3

[設定變數為使用者輸入的值]
set /p a=輸入一個值 ==>輸出 輸入一個值
echo %a% ==>顯示使用者輸入的值

!注意!
set不能用在複合語句裡面比如if 1==1 set a=2或者for %%i in (a) do set a=2

預定義的變數

下面是些已經被底層定義好可以直接使用的變數:不會出現在 SET 顯示的變數列表中
%CD% - 擴充套件到當前目錄字串。
%DATE% - 用跟 DATE 命令同樣的格式擴充套件到當前日期。
%TIME% - 用跟 TIME 命令同樣的格式擴充套件到當前時間。
%RANDOM% - 擴充套件到 0 和 32767 之間的任意十進位制數字。
%ERRORLEVEL% - 擴充套件到當前 ERRORLEVEL 數值。
%CMDEXTVERSION% - 擴充套件到當前命令處理器副檔名版本號。
%CMDCMDLINE% - 擴充套件到呼叫命令處理器的原始命令列。
%0 bat的完整路徑名如”C:\Windows\system32\xxx.bat”
%1 bat引數1依次類推%2引數2…
%path% - 當前的環境變數。以分號隔開的路徑列表,路徑可包含空格,可以以’\’結尾, 可以以雙引號包圍之。

擴充套件變數

@ 與%i相關的變數(bat引數或者for迴圈的%i)
假設檔案為C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%0 C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%~dp0 C:\Documents and Settings\jinsun\桌面\
%cd% C:\Documents and Settings\jinsun\桌面
%~nx0 ParseSinglePkgs.bat
%~n0 ParseSinglePkgs
%~x0 .bat

@ 與%VAR%相關的變數
%VAR:str1=str2% 會將VAR中的str1替換為str2(str2如果為空則可以達到刪除的效果,str1前可以加*,變數%ABC:*B=%是C)
%VAR:~0,-2% 會提取VAR 變數的所有字元,除了最後兩個
%VAR:~2% 會提取VAR 變數的除前兩個的所有字元
%VAR:~-2% 會提取VAR 變數的最後兩個
%VAR:~2,5% 提取從第2個字元開始的5個字元