if performs conditional processing in batch programs.
在批程式中執行條件處理。
if [not] errorlevel number command
if [not] string1==string2 command
if [not] exist filename command
not 指定只有條件為 false 的情況下, windows 2000 才應該執行該命令。
errorlevel number 如果最後執行的程式返回乙個等於或大指定數字的退出編碼,指定條件為 true。
string1==string2 如果指定的文字字串匹配,指定乙個 true條件。
exist filename 如果指定的檔名存在,指定乙個 true 條件。
command 如果條件符合,指定要執行的命令。如果指定的條件為 false,else 命令可隨在命令之後,else命令將在 else 關鍵字之後執行該命令。
else 子句必須在 if 之後出現在同一行上。例如:
if exist filename. (
del filename.
) else (
echo filename. missing.
)
因為 del 命令需要用乙個新行終止,以下子句不會有效:
if exist filename. del filename. else echo filename. missing
由於else 命令必須與 if 命令的尾端在同一行上,以下子句也
不會有效:
if exist filename. del filename.
else echo filename. missing
如果都放在同一行上,以下子句有效:
if exist filename. (del filename.) else echo filename. missing
如果命令副檔名被啟用,if 會如下改變:
if [/i] string1 compare-op string2 command
if cmdextversion number command
if defined variable command
其中,比較運算子可以是:
equ - 等於
neq - 不等於
lss - 小於
leq - 小於或等於
gtr - 大於
geq - 大於或等於
及 /i 命令選項;如果該命令選項被指定,則說明要進行的字串比較不分大小寫。/i 命令選項可以用於 if 的 string1==string2 的形式上。這些比較都是通用的;原因是,如果 string1 和 string2 都是由數字組成的,字串會被轉換成數字,進行數字比較。
cmdextversion 條件的作用跟 errorlevel 的一樣,除了它是在跟與命令副檔名有關聯的內部版本號比較。第乙個版本是 1。每次對命令副檔名有相當大的增強時,版本號會增加乙個。命令副檔名被停用時,cmdextversion 條件不是真的。
如果已定義環境變數,defined 條件的作用跟 exists 的一樣,除了它取得乙個環境變數,返回的結果是 true。
如果沒有名為 errorlevel 的環境變數,%errorlevel%會擴充為 errolevel 當前數值的字串符表示式;否則,您會得到其數值。執行程式後,以下語句說明 errorlevel 的用法:
goto answer%errorlevel%
:answer0
echo program had return code 0
:answer1
echo program had return code 1
您也可以使用以上的數字比較:
if %errorlevel% leq 1 goto okay
如果沒有名為 cmdcmdline 的環境變數,%cmdcmdline%將在 cmd.exe 進行任何處理前擴充為傳遞給 cmd.exe 的原始命令列;否則,您會得到其數值。
如果沒有名為 cmdextversion 的環境變數,%cmdextversion% 會擴充為 cmdextversion 當前數值的字串符表示式;否則,您會得到其數值。
DOS批處理的使用
今天乙個同事詢問我怎麼使用dos批處理來建立乙個目錄,如果目錄已經存在的話,需要先刪除該目錄後,然後在重新建立它。於是 到網上搜尋了一番,寫下這個dos批處理檔案 remkdir.cmd 實現他所需要的功能。echo off 目的 建立乙個目錄,如果目錄已經存在則先刪除該目錄 code by hai...
使用批處理檔案
字尾是bat的檔案就是批處理檔案,是一種文字檔案。簡單的說,它的作用就是自動的連續執行多條命令,批處理檔案的內容就是一條一條的命令。那它有什麼用呢?比如,在啟痺ps軟體時,每次都必須執行 c cd wps c wps spdos c wps py c wps wbx c wps wps 如果每次用w...
批處理使用心得
獲得當前目錄 echo cd set str aa bb cc dd for f i in str do echo i 以上兩行命令在命令提示符直接輸入的話執行出錯,如果寫在bat檔案裡面後執行正常,不知道為什麼?獲得某bat檔案的完成路徑 不一定是當前目錄下 以 c documents and s...