【文章內(nèi)容簡(jiǎn)介】
能夠?qū)蓚€(gè)字符(串)是否相同、先后順序進(jìn)行判斷等。其命令格式為: IF [not] string1 pareop string2 mand1 [else mand2] 其中,比較操作符pareop有以下幾類: == 等于 EQU 等于 NEQ 不等于 LSS 小于 LEQ 小于或等于 GTR 大于 GEQ 大于或等于 選擇開關(guān)/i則不區(qū)分字符串大小寫;選擇not項(xiàng),則對(duì)判斷結(jié)果進(jìn)行邏輯非。 字符串比較示例: =============================================== @echo off set str1=abcd1233 set str2=ABCD1234 if %str1%==%str2% (echo 字符串相同!) else (echo 字符串不相同!) if /i %str1% LSS %str2% (echo str1^str2) else (echo str1^=str2) echo. set /p choice=是否顯示當(dāng)前時(shí)間?(y/n) if /i not %choice% EQU n echo 當(dāng)前時(shí)間是:%date% %time% pausenul =============================================== 對(duì)于最后一個(gè)if判斷,當(dāng)我們輸入n或N時(shí)的效果是一樣的,都不會(huì)顯示時(shí)間。如果我們?nèi)∠_關(guān)/i,則輸入N時(shí),依舊會(huì)顯示時(shí)間。 另外請(qǐng)注意一下幾個(gè)細(xì)節(jié):1echo str1^str2和echo str1^=str2;2echo.。 存在判斷 存在判斷的功能是判斷文件或文件夾是否存在。其命令格式為: IF [NOT] EXIST filename mand1 [else mand2] =============================================== @echo off if exist %0 echo 文件%0是存在的! if not exist %~df0 ( echo 文件夾%~df0不存在! ) else echo 文件夾%~df0存在! pausenul =============================================== 這里注意幾個(gè)地方: 1存在判斷既可以判斷文件也可以判斷文件夾; 2%0即代表該批處理的全稱(包括驅(qū)動(dòng)器盤符、路徑、文件名和擴(kuò)展類型); 3%~df0是對(duì)%0的修正,只保留了其驅(qū)動(dòng)器盤符和路徑,詳情請(qǐng)參考for /?,屬高級(jí)批處理范疇; 4注意if語(yǔ)句的多行書寫,多行書寫要求mand1的左括號(hào)必須和if在同一行、else必須和mand1的右括號(hào)同行、mand2的左括號(hào)必須與else同行、mand1和mand2都可以有任意多行,即mand可以是命令集。 定義判斷 定義判斷的功能是判斷變量是否存在,即是否已被定義。其命令格式為: IF [not] DEFINED variable mand1 [else mand2] 存在判斷舉例: =============================================== @echo off set var=111 if defined var (echo var=%var%) else echo var尚未定義!set var= if defined var (echo var=%var%) else echo var尚未定義! pausenul =============================================== 對(duì)比可知,set var=可以取消變量,收回變量所占據(jù)的內(nèi)存空間。 【 for語(yǔ)句(循環(huán)結(jié)構(gòu)) 】 for語(yǔ)句可以實(shí)現(xiàn)類似于C語(yǔ)言里面的循環(huán)結(jié)構(gòu),當(dāng)然for語(yǔ)句的功能要更強(qiáng)大一點(diǎn),通過不同的開關(guān)可以實(shí)現(xiàn)更多的功能。for語(yǔ)句有多個(gè)開關(guān),不同開關(guān)將會(huì)實(shí)現(xiàn)不同的功能。 無開關(guān) 無開關(guān)的for語(yǔ)句能夠?qū)υO(shè)定的范圍內(nèi)進(jìn)行循環(huán),是最基本的for循環(huán)語(yǔ)句。其命令格式為: FOR %%variable IN (set) DO mand 其中,%%variable是批處理程序里面的書寫格式,在DOS中書寫為%variable,即只有一個(gè)百分號(hào)(%);set就是需要我們?cè)O(shè)定的循環(huán)范圍,類似于C語(yǔ)言里面的循環(huán)變量;do后面的mand就是循環(huán)所執(zhí)行的命令,即循環(huán)體。 無開關(guān)for語(yǔ)句舉例: =============================================== @echo off for %%i in (a,b c,d) do echo %%i pausenul =============================================== 開關(guān)/L 含開關(guān)/L的for語(yǔ)句,可以根據(jù)set里面的設(shè)置進(jìn)行循環(huán),從而實(shí)現(xiàn)對(duì)循環(huán)次數(shù)的直接控制。其命令格式為: FOR /L %%variable IN (start,step,end) DO mand 其中,start為開始計(jì)數(shù)的初始值,step為每次遞增的值,end為結(jié)束值。當(dāng)end小于start時(shí),step需要設(shè)置為負(fù)數(shù)。 含開關(guān)/L的for語(yǔ)句舉例(創(chuàng)建5個(gè)文件夾): =============================================== @echo off for /l %%i in (1,2,10) do md %%i pause =============================================== 上例將新建5個(gè)文件夾,文件夾名稱依次為9。可以發(fā)現(xiàn),%%i