在命令列中鍵入
help if
顯示:
在批次檔中執行條件處理。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename commandNOT 表示 Windows XP 應該只有在條件為偽時
才執行命令。ERRORLEVEL number 當上一個執行的程式傳回的結束碼大於或
等於指定數字時,則條件為真。string1==string2 當指定的文字字串相符合時,則條件
為真。EXIST filename 如果指定的檔名存在時,則條件
為真。command 指定當條件為真時所要執行的命令。
命令之後可以接著 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 命令
IF CMDEXTVERSION 數字命令
IF DEFINED 變數命令compare-op 可以是:
EQU – 等於
NEQ – 不等於
LSS – 小於
LEQ – 小於或等於
GTR – 大於
GEQ – 大於或等於而如果指定 /I 參數,則執行區分大小寫的字串比對。此 /I 參數也可使用
string1==string2 格式於 IF 命令。這些比對是通用的,因為在比對中,如
果 string1 及 string2 兩者皆由十進位數字所構成,則字串將會轉換為數
字,並執行數字的比對。CMDEXTVERSION 條件式的運作和 ERRORLEVEL 一樣,除非它和與擴充命令相
關的內部版本編號作比對。第一個版本為 1。若擴充命令大幅度地增強時就
再加 1。當擴充命令停用時,CMDEXTVERSION 條件式永遠不為真。DEFINED 條件式的運作和 EXISTS 一樣,除非它帶有環境變數名稱,如果環
境變數已定義則傳回 true 值。%ERRORLEVEL% 將擴充到代表目前 ERRORLEVEL 變數的一個字串,前提是已
經沒有名為 ERRORLEVEL 的環境變數,在這個情況下,您會得到它的值。使
用此值和上面的數字比對運算元,您可以作下列的選擇:
goto answer %ERRORLEVEL%
:answer0
提示您鍵入 Y 加以確定
:answer1
提示您鍵入N 加以否定您也可使用上面的數字比對:
IF %ERRORLEVEL% LEQ 1 goto okay
%CMDCMDLINE% 將擴充到比 CMD.EXE 的任何處理程序更早傳給 CMD.EXE 的
原始命令列,前提是已經沒有名為 CMDCMDLINE 的環境變數,在這個情形下,
您會得到它的值。%CMDEXTVERSION% 將擴充成一個表示目前 CMDEXTVERSION 值的字串,
表示沒有名為 CMDEXTVERSION 的環境變數。這種情況下您將會得到它的值。