批处理程序中的条件判断语句。若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 例子
下面这个例子用来测试目录是否存在。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>命令。