![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-14 01:47 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 请教ERRORLEVEL错误返回代号 |
| 可打印版本 935 / 3 |
| 第1楼 dosz | 发表于 2006-02-18 10:08 |
| 中级用户 发帖 188 积分 396 来自 上海 | |
|
请教ERRORLEVEL错误返回代号 ===============执行.bat===============
@echo off copy C:\BOOT.INI>nul if errorlevel 1 echo 执行失败 if errorlevel -1 echo 执行成功 if errorlevel -1 echo 被用户中断等 pause exit =============================== 请教 ERRORLEVEL错误返回代号 如执行成功,执行失败,或被用户中断等 |
|
| 第2楼 DOSforever | 发表于 2006-02-20 00:53 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
没怎么研究过 CMD 下的命令行环境,象 COPY 这样的内部命令也有退出码吗?
|
|
| 第3楼 willsort | 发表于 2006-02-20 10:13 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
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 ] |
|
| 第4楼 dosz | 发表于 2006-03-03 20:39 |
| 中级用户 发帖 188 积分 396 来自 上海 | |
|
谢谢版主回复.
"大多情况下,0 为成功,1 为失败。"我知道了 可以用 "ECHO %errorlevel%"来显示错误返回码 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |