一、if的三種用法 IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command (1)、IF [NOT] ERRORLEVEL number do something ERRORLEVEL number是錯(cuò)誤碼也稱返回碼。(只是這么叫而已,和錯(cuò)誤二字沒(méi)必然聯(lián)系。) 如果最后運(yùn)行的程序返回一個(gè)錯(cuò)誤碼(返回碼),如果它等于或大于指定數(shù)字number,則指定條件為 true。 例子: @echo off ipconfig if errorlevel 1 goto a if errorlevel 0 goto b :a echo 結(jié)果為a! pause exit :b echo 結(jié)果為b! pause 解釋:“ipconfig”執(zhí)行成功,則返回碼為0 (2)、IF [NOT] string1==string2 do something 如果指定的文字字符串匹配,指定條件為 true。 例: @echo off if "520hack" == "520hack" echo 我們相等! pause 當(dāng)然,也可以用于字符串變量的比較,如下: @echo off set str1=520hack set str2=520hack if %str1% == %str2% echo 我們相等! pause 這里去掉兩個(gè)變量的值,在加個(gè)/p來(lái)理解這個(gè)參數(shù)的作用吧! (3)、IF [NOT] EXIST filename do something 如果指定的文件名存在,指定條件為 true。 例: @echo off if exist mstsc.exe echo 當(dāng)前目錄下存在文件mstsc.exe pause 解說(shuō):如果當(dāng)前文件夾下存在mstsc.exe則顯示“當(dāng)前目錄下存在文件mstsc.exe”,否則不顯示。 以上各句中的[NOT]是可選項(xiàng),表示只有條件為 false 的情況下,才應(yīng)該執(zhí)行該命令。 二、if-else語(yǔ)句 ELSE 子句必須在 IF 之后出現(xiàn)在同一行上。 例: @echo off IF EXIST a.txt (del a.txt) ELSE echo 不存在文件! pause 解說(shuō):如果存在文件a.txt則刪除,否則顯示“不存在文件!”。本程序段的這種寫法是ELSE 子句在 IF 之后出現(xiàn)在同一行上的特殊形式,它是通過(guò)括號(hào)“(”和“)”相連接的。 由于 ELSE 命令必須與 IF 命令的尾端在同一行上,以下子句不會(huì)有效: IF EXIST a.txt del a.txt ELSE echo a.txt 不存在文件! 因?yàn)?del 命令需要用一個(gè)新行終止,以下子句不會(huì)有效: IF EXIST a.txt del a.txt ELSE echo 不存在文件! 需要用括號(hào)擴(kuò)上。 IF EXIST a.txt (del a.txt) ELSE echo 不存在文件! 三、if的嵌套用法 例: @echo off set /p var=請(qǐng)輸入一個(gè)數(shù)字: if %var% gtr 5 if %var% lss 10 echo 這是一個(gè)大于5小于10的數(shù)! pause 解說(shuō):首先要注意“%var%”,若要取出變量的值要用%%將變量括起來(lái)。其次運(yùn)算符gtr代表大于,lss代表小于,類似的運(yùn)算符還有: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于 綜合實(shí)例: @echo off :again s= cls color f set /p p=please input password: set s=520hack if "%p%"=="%s%" ( echo 您已經(jīng)通過(guò)了認(rèn)證!&start cmd.exe ) else ( echo 密碼錯(cuò)誤! ) pause >nul goto again
|
|