![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 12:01 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【请教】DOS“内部”命令是不是不能返回ErrorLevel? |
| 可打印版本 811 / 8 |
| 第1楼 uhnmki | 发表于 2008-01-08 16:40 |
| 初级用户 发帖 11 积分 73 | |
|
【请教】DOS“内部”命令是不是不能返回ErrorLevel? 例如:
@echo off dir > test.txt if errorlevel 1 echo ERRORLEVEL IS 1 OR GREATER if errorlevel 0 echo ERRORLEVEL IS 0 运行一次返回:ERRORLEVEL IS 0 没问题,应该是这样。 但是现在我把test.txt的属性改为只读,然后再运行,应该出现错误, 所以我希望看到显示:ERRORLEVEL IS 1 OR GREATER 的确DOS报错:File creation error,可是接着 ERRORLEVEL IS 0,奇怪了。 我用各种方式使dir出错,然后测试Errorlevel,返回的都是0, 我观察过几个用 if errorlevel 测试错误的例子,没看到有针对DOS内部命令使用 if errorlevel测试错误的,本人见识不多,感觉是不是DOS的外部命令才会返回错误, 而内部命令则不能,请坛内的DOS高手不吝赐教,这个问题跟我要给大家共享的一个 小程序有关。 多谢。 |
|
| 第2楼 knoppix7 | 发表于 2008-01-08 20:35 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
貌似符号命令的错误不产生errorlevel
|
|
| 第3楼 everest79 | 发表于 2008-01-08 20:58 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
管道符也被视作一个命令
|
|
| 第4楼 BatMan | 发表于 2008-01-09 02:45 |
| 初级用户 发帖 24 积分 54 | |
|
内部命令是能返回ERRORLEVEL的。
嗯...也许正如楼上的大大们所言,那个>重定向可能带来了一些side effect...我不清楚,我做了一下实验...但还没理清头绪,暂不发表过多言论了... 但是要解决你的问题我倒是可以提供个方法: 即在前语句失败的情况下做一下ECHO > nul的无用功,发现ERRORLEVEL就能正确传出来了,你试一试。 另外,之所以要把ERRORLEVEL 0的判断放进ELSE段,是因为如果你能通过ERRORLEVEL 1,那么ERRORLEVEL 0当然是会成功的,你原来的写法会把0的那一句也打印出来,估计你也不是想那样子吧?;) |
|
| 第5楼 uhnmki | 发表于 2008-01-24 00:02 |
| 初级用户 发帖 11 积分 73 | |
|
在Win98下未通过 谢谢各位热心解答,尤其蝙蝠侠,你的代码在WinXp下测试通过,但是Win98下还是不行,不知还有没有办法。
|
|
| 第6楼 VAF | 发表于 2008-01-24 01:07 |
| 中级用户 发帖 134 积分 242 | |
|
请参见: 谁能整理关于带反还值的常用的批处理程序? - DOS批处理 & 脚本技术(批处理室) - 中国DOS联盟论坛 - 中国DOS联盟之联合DOS论坛
http://www.cn-dos.net/forum/viewthread.php?tid=37261&fpage=1 |
|
| 第7楼 qzwqzw | 发表于 2008-01-24 10:08 |
| 银牌会员 发帖 636 积分 2,343 | |
|
首先分清两个问题:
第一,command.com(包括9X和NTs)中的内部命令是没有返回值的 第二,cmd.exe中的部分内部命令是有返回值的,比如dir,copy等 但也有很多没有返回值,比如set,if,for等 |
|
| 第8楼 knoppix7 | 发表于 2008-01-24 12:28 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
而且W9X下没有||这类的命令....
|
|
| 第9楼 uhnmki | 发表于 2008-01-26 07:36 |
| 初级用户 发帖 11 积分 73 | |
|
太谢谢各位了 多谢各位高手不吝赐教,指点迷津,作为回报,我送分,以后再发个小程序给大家用,和dir差不多,只是专用点。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |