中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]关于 If Errorlevel 是否对第三方程序有效的疑惑
作者:
标题: [已结]关于 If Errorlevel 是否对第三方程序有效的疑惑 上一主题 | 下一主题
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『楼 主』:  [已结]关于 If Errorlevel 是否对第三方程序有效的疑惑

Dos 下键入 Help If 第一句的例子是 IF [NOT] ERRORLEVEL number command 但我应用时却似乎一直无效, 无奈只好用 IF [NOT] %ERRORLEVEL%==number command 请达人解答怎么回事, 谢谢! [ Last edited by HAT on 2008-12-8 at 10:00 ]




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-2 19:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

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 错误的命令 正确的命令




2008-6-3 00:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 3 楼』:  

谢谢解答. 我以前也曾经这样用过. 可是我在执行第三方程序之后, 比如WINRAR, (WINRAR也有退出码的), 这样做就似乎不行了. 非得用 if %errorlevel%== 不可




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-3 10:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

能把你的完整代码贴出来看看吗?




2008-6-3 11:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 5 楼』:  

已经证实, 该命令对第三方命令确实无效。 比如有个程序叫drvtypes,用于检测盘符类型,正常情况下退出码0,参数错误则退出码不为零。但以下代码执行均显示“Correct”,碰到任何第三方程序, 我觉得还是用“if %errorlevel%==0”来得保险。 你可以用任何第三方程序试验下。
@echo off
drvtypes>nul
call:test
drvtypes /s>nul
call:test
exit

:test
if errorlevel 0 (echo Correct) else (echo Error)
pause




我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-6-3 14:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
rs369007
初级用户





积分 147
发帖 131
注册 2008-9-22
状态 离线
『第 6 楼』:  二楼这贴看起来似乎有点不足

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 这样似乎才能看到效果!个人愚见


2008-12-8 09:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2343
发帖 636
注册 2004-3-6
状态 离线
『第 7 楼』:  

嗯 quya确实没有明白if errorlevel 的基本用法 那个判断是大于等于的判断 而不是等于的判断


2008-12-9 08:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ghoulrobot
新手上路





积分 10
发帖 7
注册 2008-12-6
状态 离线
『第 8 楼』:  

昨天晚上尝试choice的时候.也没有进行判断.直接一直往下走...


2008-12-9 10:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: