REM 是個注釋命令一般是用來給程序加上注解的,該命令后的內(nèi)容在程序執(zhí)行的時候?qū)⒉粫伙@示和執(zhí)行。例: REM 你現(xiàn)在看到的就是注解,這一句將不會被執(zhí)行。在以后的例子中解釋的內(nèi)容都REM 會放在REM后面。請大家注意。
2、 ECHO
ECHO 是一個回顯命令主要參數(shù)有OFF和 ON,一般用ECHO message來顯示一個特定的消息 。例: Echo off Rem 以上代表關(guān)閉回顯即不顯示所執(zhí)行的命令 Echo 這個就是消息。 Rem 以上代表顯示“這就是消息”這列字符 執(zhí)行結(jié)果: C:\&;ECHO.BAT 這個就是消息。
3、 GOTO
GOTO 即為跳轉(zhuǎn)的意思。在批處理中允許以“:XXX”來構(gòu)建一個標(biāo)號然后用GOTO :標(biāo)號直接來執(zhí)行標(biāo)號后的命令。例 :LABEL REM 上面就是名為LABEL的標(biāo)號。 DIR C:\ DIR D:\ GOTO LABEL REM 以上程序跳轉(zhuǎn)標(biāo)號LABEL處繼續(xù)執(zhí)行。
IF 條件判斷語句,語法格式如下: IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command 說明: [NOT] 將返回的結(jié)果取反值即“如果沒有”的意思。 ERRORLEVEL 是命令執(zhí)行完成后返回的退出值 Number 退出值的數(shù)字取值范圍0~255。判斷時值的排列順序應(yīng)該又大到小。返回的值大于或等于指定的值時條件成立。 string1==string2 string1和string2都為字符的數(shù)據(jù),英文字符的大小寫將看做不同,這個條件中的等于號必須是2個(絕對相等),條件想等后即執(zhí)行后面的 command EXIST filename 為文件或目錄存在的意思。 IF ERRORLEVEL這條語句必須放在某一個命令后面。執(zhí)行命令后由IF ERRORLEVEL來判斷命令的返回值。 例:
1、 IF [NOT] ERRORLEVEL number command 檢測命令執(zhí)行完后的返回值做出判斷。 echo off dir z: rem 如果退出代碼為1(不成功)就跳至標(biāo)題1處執(zhí)行 IF ERRORLEVEL 1 goto 1 rem 如果退出代碼為0(成功)就跳至標(biāo)題0處執(zhí)行 IF ERRORLEVEL 0 goto 0 :0 echo 命令執(zhí)行成功! Rem 程序執(zhí)行完畢跳至標(biāo)題exit處退出 goto exit :1 echo 命令執(zhí)行失敗! Rem 程序執(zhí)行完畢跳至標(biāo)題exit處退出 goto exit :exit Rem 這里是程序的出口 2、 IF string1==string2 command 檢測當(dāng)前變量的值做出判斷 ECHO OFF IF %1==2 goto no Echo 變量相等! Goto exit :no echo 變量不相等 goto exit :exit 大家可以這樣看效果 C:\&;test.bat 數(shù)字
3、 IF [NOT] EXIST filename command 發(fā)現(xiàn)特定的文件做出判斷 echo off IF not EXIST autoexec.bat goto 1 echo 文件存在成功! goto exit :1 echo 文件不存在失?。? goto exit :exit 這個批處理大家可以放在c盤和d盤分別執(zhí)行看看效果。 7、 FOR FOR這個命令比較特殊是一個循環(huán)執(zhí)行命令的命令,同時FOR的循環(huán)里面還可以套用FOR在進(jìn)行循環(huán)。這篇我們介紹基本的用法就不做套用的循環(huán)了,后面再來講解套用的循環(huán)。在批處理中FOR的命令如下: FOR [%%c] IN (set) DO [command] [arguments] 在命令行中命令如下: FOR [%c] IN (set) DO [command] [arguments] 常用參數(shù): /L 該集表示以增量形式從開始到結(jié)束的一個數(shù)字序列。因此,(1,1,5) 將產(chǎn)生序列 1 2 3 4 5,(5,-1,1) 將產(chǎn)生序列 (5 4 3 2 1)。 /D 如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
/F 從指定的文件中讀取數(shù)據(jù)作為變量 eol=c - 指一個行注釋字符的結(jié)尾(就一個) skip=n - 指在文件開始時忽略的行數(shù)。 delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認(rèn)分隔符集。 tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代的 for 本身。這會導(dǎo)致額外變量名稱的分配。m-n格式為一個范圍。通過 nth 符號指定 mth。如果符號字符串中的最后一個字符星號,那么額外的變量將在最后一個符號解析之后分配并接受行的保留文本。 usebackq - 指定新語法已在下類情況中使用:在作為命令執(zhí)行一個后引號的字符串并且一個單引號字符為文字字符串命令并允許在 filenameset中使用雙引號擴(kuò)起文件名稱。 下面來看一個例子: FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k 會分析 myfile.txt 中的每一行,忽略以分號打頭的那些行,將每行中的第二個和第三個符號傳遞給 for 程序體;用逗號和/或空格定界符號。請注意,這個 for 程序體的語句引用 %i 來取得第二個符號,引用 %j 來取得第三個符號,引用 %k來取得第三個符號后的所有剩余符號。對于帶有空格的文件名,您需要用雙引號將文件名括起來。為了用這種方式來使用雙引號,您還需要使用 usebackq 選項(xiàng),否則,雙引號會被理解成是用作定義某個要分析的字符串的。 %i 專門在 for 語句中得到說明,%j 和 %k 是通過tokens= 選項(xiàng)專門得到說明的。您可以通過 tokens= 一行指定最多 26 個符號,只要不試圖說明一個高于字母 'z' 或'Z' 的變量。請記住,F(xiàn)OR 變量名分大小寫,是通用的;而且,同時不能有 52 個以上都在使用中。 您還可以在相鄰字符串上使用 FOR /F 分析邏輯;方法是,用單引號將括號之間的 filenameset 括起來。這樣,該字符串會被當(dāng)作一個文件中的一個單一輸入行。最后,您可以用 FOR /F 命令來分析命令的輸出。方法是,將括號之間的 filenameset 變成一個反括字符串。該字符串會被當(dāng)作命令行,傳遞到一個子 CMD.EXE,其輸出會被抓進(jìn)內(nèi)存,并被當(dāng)作文件分析。因此,以下例子: FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i 會枚舉當(dāng)前環(huán)境中的環(huán)境變量名稱。 以下列舉一個簡單的例子,他將說明參數(shù)/L和沒有參數(shù)的區(qū)別: 刪除文件1.TXT 2.TXT 3.TXT 4.TXT 5.TXT 例: ECHO OFF FOR /L %%F IN (1,1,5) DO DEL %%F.TXT 或 FOR %%F IN (1,2,3,4,5) DO DEL %%F.TXT 以上2條命令執(zhí)行的結(jié)果都是一樣的如下: C:\&;DEL 1.TXT C:\&;DEL 2.TXT C:\&;DEL 3.TXT C:\&;DEL 4.TXT C:\&;DEL 5.TXT
8、 SETLOCAL 開始批處理文件中環(huán)境改動的本地化操作。在執(zhí)行 SETLOCAL 之后 所做的環(huán)境改動只限于批處理文件。要還原原先的設(shè)置,必須執(zhí) 行 ENDLOCAL。 達(dá)到批處理文件結(jié)尾時,對于該批處理文件的每個 尚未執(zhí)行的 SETLOCAL 命令,都會有一個隱含的 ENDLOCAL 被 執(zhí)行。例: @ECHO OFF SET PATH /*察看環(huán)境變量PATH PAUSE SETLOCAL SET PATH=E:\TOOLS /*重新設(shè)置環(huán)境變量PATH SET PATH PAUSE ENDLOCAL SET PATH 從上例我們可以看到環(huán)境變量PATH第1次被顯示得時候是系統(tǒng)默認(rèn)路徑。被設(shè)置成了E:\TOOLS后顯示為E:\TOOLS但當(dāng)ENDLOCAL后我們可以看到他又被還原成了系統(tǒng)的默認(rèn)路徑。但這個設(shè)置只在該批處理運(yùn)行的時候有作用。當(dāng)批處理運(yùn)行完成后環(huán)境變量PATH將會還原。