一、變量
- 在windows操作系統(tǒng)中邮弹,變量可分為兩種:
一種是系統(tǒng)已經(jīng)定義好的變量,叫做“系統(tǒng)變量”蚓聘;
另一種就是用戶自己定義的變量腌乡。也叫做“自定義變量”。
打開一個cmd窗口或粮,輸入set命令导饲,回車可獲得系統(tǒng)環(huán)境變量。
若要獲取單個系統(tǒng)變量的值氯材,可在cmd下輸入
echo %computername% ::獲取計算機名
二渣锦、set命令
1、/p 參數(shù)使批處理與用戶進行交互
@echo off
set /p var = please input:
::打印用戶輸入的數(shù)據(jù)
echo %var%
pause
2氢哮、/a 參數(shù)獲取右側(cè)表達式的結(jié)果袋毙,若未加,則按字符處理
@echo off
set /a var = 1+1
echo %var%
pause
輸出結(jié)果:2
3冗尤、邏輯運算:
& 與運算听盖,一假則假;
| 或運算裂七,一真則真皆看;
^ 異或運算,異為真背零,同為假腰吟;
% 取模運算,取余數(shù)
另外還有<<徙瓶、 >>位運算符毛雇,可結(jié)合二進制數(shù)的運算知識
格式:
set /a var = 1"|"0 ::結(jié)果為1
set /a var = 1"^"1 ::結(jié)果為0
4、 替換字符串
set var = hello.world.!
set var = %var:llo=被替換的字符串%
echo %var%
輸出結(jié)果:he被替換的字符串.world.!
5侦镇、 截取字符串
set var = www.baidu.com
set var = %var:~1,3%
三灵疮、if 語句
運行if /? 可獲取幫助文檔,很詳細壳繁。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT 指定只有條件為 false 的情況下震捣,Windows 才應該執(zhí)行該命令荔棉。
ERRORLEVEL number 如果最后運行的程序返回一個等于或大于指定數(shù)字的返回代碼,指定條件為 true蒿赢。
string1==string2 如果指定的文字字符串匹配(可理解成相同的字符串)江耀,指定條件為 true。
EXIST filename 如果指定的文件名存在诉植,指定條件為 true。
command 如果符合條件昵观,指定要執(zhí)行的命令晾腔。如果指定的條件為 FALSE,命令后可跟 ELSE 命令啊犬,該命令將在 ELSE 關(guān)鍵字之后執(zhí)行該命令灼擂。
1、IF [NOT] ERRORLEVEL number do something 如果返回碼是什么, 就做某事兒觉至。(ERRORLEVEL number 是錯誤碼剔应,也稱返回碼。只是這么理解)
示例
@echo off
ipconfig
if errorlevel 1 goto a
if errorlevel 0 goto b
:a
echo 結(jié)果為 ipconfig 執(zhí)行失敗!
pause
exit
:b
echo 結(jié)果為 ipconfig 正確執(zhí)行!
pause
2语御、IF [NOT] string1==string2 do something 如果字符串相等或不等, 就做某事兒
如果與指定的文字字符串匹配峻贮,指定條件為 true。
示例
@echo off
set str1=abcd
set str2=abcd
if %str1% == %str2%
echo 字符串str1與str2相等!
pause
3应闯、IF [NOT] EXIST filename do something 如果某個文件存在, 就做某事兒
如果指定的文件名存在纤控,指定條件為 true。
示例
@echo off
if not exist mstsc.exe
echo 當前目錄下存在文件mstsc.exe
pause
注意:以上各句中的[NOT]是可選項碉纺,表示只有條件為 false 的情況下船万,才應該執(zhí)行該命令。(大家自行體會一下骨田,有種只可意會不可言傳的感覺??)
四耿导、if...else...語句
ELSE 子句必須在 IF 之后且必須出現(xiàn)在同一行上(重點)。
示例
@echo off
IF EXIST a.txt (del a.txt) ELSE echo 不存在文件!
pause
::如果存在文件 a.txt 則刪除态贤,否則顯示 “不存在文件!”
重點:1舱呻、ELSE子句必須在if之后,且必須出現(xiàn)在同一行抵卫;2狮荔、if與ELSE之間使用"()"隔開,這個()內(nèi)的命令就是滿足條件后要執(zhí)行的命令介粘。
另外if也可以嵌套使用殖氏,跟其他語言差不多,這里就不多說了姻采。