ERRORLEVLE 是返回值。
但是,当使用 IF ERRORLEVEL 3 GOTO DEFRAG 让批处理测试上一个程序运行的返回值时:
“如果返回值大于或等于由IF命令所说明的值,则MS-DOS就执行所说明的命令”
如果 CHOICE 你设定了5个选项,就要倒序判断它们的返回值,因为:
(下面是错误的例子)
IF ERRORLEVEL 1 GOTO DEFRAG
IF ERRORLEVEL 2 GOTO MEM
看上面例子,IF 判断 ERRORLEVEL 返回值的特性:
1) 不是 IF ERRORLEVEL 的值(等于)什么就跳转到哪儿
2) 而是 IF ERRORLEVEL 的值(大于 或 等于)什么值,就跳转到哪儿
如果你要把最小的值放在最前的语句(例如上面的代码),则按照 IF ERRORLEVEL 的特性判断,
如 IF ERRORLEVEL 大于或等于 1 ,可是,所有的返回值都会大于或等于 1,而不是我们心里认为的(绝对等于)。
关于更详细的 choice 与 if errorlevel 的介绍,详见由 tianzizhi 上传的非常好的一本教程~:)
(下载下面的教程,翻开P46--P50页,看完后会非常透彻)
MS-DOS6.2批处理文件高级指南
http://www.cn-dos.net/forum/viewthread.php?tid=25043&fpage=1