如楼上诸位所说,errorlevel的值取决于上条命令.
如果上条命令是调用的exe,com等可执行文件,则errorlevel由可执行文件定义,你无法修改,可以查阅相关软件说明或者自己试.
如果上条命令调用的是某个批处理脚本,那么errorlevel是可以在被调用的脚本中设置的。
例1:
a.bat
@echo off
exit /b 5
b.bat
@echo off
call a.bat
echo %errorlevel%
pause
执行b.bat就可以看到用exit /b设置的errorlevel,当然,在这里为了便于查看结果,采用的call调用a.bat的方式,其实call作为内部命令,它本身也可以产生errorlevel的,如果call执行错误则会返回1,否则返回call的程序的errorlevel.
或者在命令提示符下直接运行a.bat,然后用echo %errorlevel%就可以看到它的值了,这种方法是不通过call的。
例2:
a.bat
@echo off
set errorlevel=3
调用方法和例1中的一样,直接设置errorlevel变量的值,在封装成类似函数的标号中可以用来传递运算结果.