楼 主
请教ERRORLEVEL错误返回代号
发表于 2006-02-18 10:08 · 中国 上海 浦东新区 电信
中级用户
★★
一看二跟三动手
积分 396
发帖 188
注册 2005-10-23 13:21
20年会员
UID 43919
来自 上海
状态 离线
===============执行.bat===============
@echo off
copy C:\BOOT.INI>nul
if errorlevel 1 echo 执行失败
if errorlevel -1 echo 执行成功
if errorlevel -1 echo 被用户中断等
pause
exit
===============================
请教 ERRORLEVEL错误返回代号
如执行成功,执行失败,或被用户中断等
第 2 楼
发表于 2006-02-20 00:53 · 中国 上海 电信
金牌会员
★★★★
积分 4,639
发帖 2,239
注册 2005-01-30 00:00
21年会员
UID 35785
性别 男
状态 离线
没怎么研究过 CMD 下的命令行环境,象 COPY 这样的内部命令也有退出码吗?
第 3 楼
发表于 2006-02-20 10:13 · 中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re DOSforever:
WinNT CMD 确实与 Win9x COMMAND/MSDOS 有别,CMD下的内部命令均回返回 ERRORLEVEL ,大多情况下,0 为成功,1 为失败。
Re dosz:
if errorlevel 是不会正确识别并进行负数错误返回码判断的,它会将负号作为普通的ASCII字符进行识别,与0~9一样,使用同样的算法进行处理和判断。如下:
“-”的ASCII码为45,减去“0”的ASCII码48,因为是单字节无符号减,得45-48+256=253,再乘10,得2530,因此结果存于单字节,再对256求余,得226;“1”的ASCII码为49,减去“0”的ASCII码48,得1,加227。
因此,if errorlevel -1 与 if errorlevel 227 完全等效。同理,if errorlevel -2 与 if errorlevel 228 完全等效,诸如此类。
[ Last edited by willsort on 2006-2-20 at 10:19 ]
※ Batchinger 致 Bat Fans:请访问
批处理编程的异类 ,欢迎交流与共享批处理编程心得!
第 4 楼
发表于 2006-03-03 20:39 · 中国 上海 浦东新区 电信
中级用户
★★
一看二跟三动手
积分 396
发帖 188
注册 2005-10-23 13:21
20年会员
UID 43919
来自 上海
状态 离线
谢谢版主回复.
"大多情况下,0 为成功,1 为失败。"我知道了
可以用 "ECHO %errorlevel%"来显示错误返回码
论坛跳转: