在批处理程序中执行条件处理。
如果启用了命令扩展,请使用以下语法:
| 运算符 | 描述 | 
|---|---|
| EQU | 等于 | 
| NEQ | 不等于 | 
| LSS | 少于 | 
| LEQ | 少于或等于 | 
| GTR | 大于 | 
| GEQ | 大于或等于 | 
如果使用 defined Variable,可以添加下面三个变量:%errorlevel%、%cmdcmdline% 和 %cmdextversion%。
%errorlevel% 扩展到 errorlevel 当前值的字符串表达式,如果没有名为 ERRORLEVEL 的环境变量,就可取代 ERRORLEVEL 的值。下面的示例说明了如何在运行批处理程序后使用 errorlevel:
goto answer%errorlevel%
        :answer0
        echo Program had return code 0
      :answer1
      echo Program had return code 1
      goto end
      :end
      echo done! 
也可以使用如下的 CompareOp 比较运算符:
if %errorlevel% LEQ 1 goto okay%cmdcmdline% 在任何 Cmd.exe 处理之前扩展传递到 Cmd.exe 的源命令行,如果没有名为 CMDCMDLINE 的环境变量,在这种情况下可取代 CMDCMDLINE 的值。
%cmdextversion% 扩展到 cmdextversion 当前值的字符串表达式,如果没有名为 CMDEXTVERSION 的环境变量,就可取代 CMDEXTVERSION 的值。
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若要在未找到文件的 Product.dat 时显示“未找到数据文件”的消息,请键入:
if not exist product.dat echo Cannot find data file 
如果格式化驱动器 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.
如果没有出现错误,将跳过错误消息。
if 命令不能用于直接测试目录,但空 (NUL) 设备确实存在于每个目录中。因此,可以通过测试零设备确定目录是否存在。以下示例可测试目录的存在:
if exist c:mydir\nul goto process