中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 04:31
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]关于 If Errorlevel 是否对第三方程序有效的疑惑
可打印版本  1,614 / 7
第1楼 quya 发表于 2008-06-02 19:11
高级用户 发帖 172 积分 558 来自 江苏
[已结]关于 If Errorlevel 是否对第三方程序有效的疑惑
Dos 下键入 Help If

第一句的例子是 IF ERRORLEVEL number command

但我应用时却似乎一直无效, 无奈只好用 IF %ERRORLEVEL%==number command

请达人解答怎么回事, 谢谢!

[ Last edited by HAT on 2008-12-8 at 10:00 ]
第2楼 HAT 发表于 2008-06-03 00:28
版主 发帖 5,017 积分 9,023
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Test>type test.bat
@echo off
dir C:\test1>nul
if errorlevel 1 (
echo 错误的命令
) else (
echo 正确的命令
)
dir C:\test>nul
if errorlevel 1 (
echo 错误的命令
) else (
echo 正确的命令
)
C:\Test>test.bat
File Not Found
错误的命令
正确的命令
第3楼 quya 发表于 2008-06-03 10:03
高级用户 发帖 172 积分 558 来自 江苏
谢谢解答. 我以前也曾经这样用过.

可是我在执行第三方程序之后, 比如WINRAR, (WINRAR也有退出码的), 这样做就似乎不行了.

非得用 if %errorlevel%== 不可
第4楼 HAT 发表于 2008-06-03 11:46
版主 发帖 5,017 积分 9,023
能把你的完整代码贴出来看看吗?
第5楼 quya 发表于 2008-06-03 14:04
高级用户 发帖 172 积分 558 来自 江苏
已经证实, 该命令对第三方命令确实无效。

比如有个程序叫drvtypes,用于检测盘符类型,正常情况下退出码0,参数错误则退出码不为零。但以下代码执行均显示“Correct”,碰到任何第三方程序, 我觉得还是用“if %errorlevel%==0”来得保险。
你可以用任何第三方程序试验下。

第6楼 rs369007 发表于 2008-12-08 09:48
初级用户 发帖 131 积分 147
二楼这贴看起来似乎有点不足
type test.bat&pause
rem 测试.bat在cmd当前工作目录
@echo off
dir >C:\test1>nul
if errorlevel 1 (
echo 错误的命令
) else (
echo 正确的命令
)
pause

dir >C:\test>nul
if errorlevel 1 (
echo 错误的命令
) else (
echo 正确的命令
)
pause
test.bat
pause
echo File Not Found
pause

这样似乎才能看到效果!个人愚见
第7楼 qzwqzw 发表于 2008-12-09 08:43
银牌会员 发帖 636 积分 2,343

quya确实没有明白if errorlevel 的基本用法
那个判断是大于等于的判断
而不是等于的判断
第8楼 ghoulrobot 发表于 2008-12-09 10:14
新手上路 发帖 7 积分 10
昨天晚上尝试choice的时候.也没有进行判断.直接一直往下走...
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023