批处理程序中的条件判断语句。若IF命令指定的条件为真,则MS-DOS执行条件下面的命令;否则,MS-DOS忽略此命令。此命令只能在批处理程序中使用。
语法 :
| IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command |
参数:
NOT
指出若条件为假时,MS-DOS应该执行后面的命令。
ERRORLEVEL number
当上一个应用程序返回的退出码大于等于number这个数时条件为真。
command
指定条件为真时,MS-DOS将执行的命令。
string1==string2
仅当string1和 string2相同时条件为真。这两个值可以是字符串或批处理变量(例如%1)。字符串不需用引号括起来。
EXIST filename
当filename这个文件存在时条件为真。
下面这个例子用来测试目录是否存在。IF命令不能直接用来测试目录,但空(NUL)设备存在于硬盘的每一个目录下。因此,可以通过空设备来测试硬盘目录是否存在。
if exist c:\mydir\nul goto process
在下面这个例子中,当MS-DOS未找到PRODUCT.DAT时显示信息"Can't find data file":
if not exist product.dat echo Can't find data file
每个程序中止时都会返回一个退出码。例如,值为0通常用于表示程序正常执行完毕。ERRORLEVEL参数用于测试退出码的值。
在下面这个例子中,当格式化驱动器A中的磁盘时,若出错则会显示一条错误信息。若未出错,则跳过错误信息。
| :begin echo off format a: /s if not errorlevel 1 goto end echo An error occurred during formatting. :end echo End of batch program. |
使用ERRORLEVEL参数的另一个例子,见<CHOICE>命令。