errorlevel 基础用法

本文将介绍批处理文件中 errorlevel 与 %errorlevel% 的作用和用法。

errorlevel 常用来判断上条命令的执行情况。因此我们可以先看看 if /? 语句的帮助文档。如下:

C:\Users\Administrator>if /?
执行批处理程序中的条件处理。

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

NOT               指定只有条件为 false 的情况下,Windows 才应该执行该命令。
ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出代码,指定条件为 true。
.... 省略 ....

根据 if 语句的帮助信息,如果我们使用去使用 errorlevel,它的含义是:如果返回的错误码值大于或等于值 的时候,将执行cmmand 操作。实例:

@echo off
copu a.txt bak/b.txt
echo errorlevel=%errorlevel%
if errorlevel 0 echo SUCCESS
pause

输出结果:

C:\Users\Administrator\Desktop>test.bat
'copu' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
errorlevel=9009
SUCCESS
请按任意键继续. . .

当使用句式时,它含义是:如果返回的错误码值等于值的时候,将执行cmmand操作。实例:

@echo off
copu a.txt bak/b.txt
echo errorlevel=%errorlevel%
if %errorlevel%==0 (
	echo success
) else (
	echo error
)
pause

输出结果:

C:\Users\Administrator\Desktop>test.bat
'copu' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
errorlevel=9009
error
请按任意键继续. . .

上面实例中,errorlevel 等于 9009,并不等于0,因此输出“error”。

一般上一条命令的执行结果返回的值只有两个,“成功”用 0 表示;“失败”用 1 表示;实际上,errorlevel 返回值可以在0~255 之间,例如 xcopy 默认的errorlevel 值就有5 个,分别表示5 种执行状态:

  • 0 复制文件成功 

  • 1 未找到复制文件 

  • 2 用户通过CTRL C 终止了xcopy操作 

  • 4 出现了初始化错误  

  • 5 出现了磁盘写入错误

if %ERRORLEVEL% 对数值的比较方法不仅仅限于等于,可以使用参数来控制。比如:

rem 小于或等于
if %ERRORLEVEL% LEQ 1 echo SUCCESS

全部的比较参数如下: 

  • EQU - 等于,=

  • NEQ - 不等于,!=

  • LSS - 小于,<

  • LEQ - 小于或等于,<=

  • GTR - 大于,>

  • GEQ - 大于或等于,>=

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号