Board logo

标题: [已结]关于 If Errorlevel 是否对第三方程序有效的疑惑 [打印本页]

作者: quya     时间: 2008-6-2 19:11    标题: [已结]关于 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 ]

作者: HAT     时间: 2008-6-3 00:28
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 错误的命令 正确的命令

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

作者: HAT     时间: 2008-6-3 11:46
能把你的完整代码贴出来看看吗?

作者: quya     时间: 2008-6-3 14:04
已经证实, 该命令对第三方命令确实无效。 比如有个程序叫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

作者: rs369007     时间: 2008-12-8 09:48    标题: 二楼这贴看起来似乎有点不足
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 这样似乎才能看到效果!个人愚见

作者: qzwqzw     时间: 2008-12-9 08:43
嗯 quya确实没有明白if errorlevel 的基本用法 那个判断是大于等于的判断 而不是等于的判断

作者: ghoulrobot     时间: 2008-12-9 10:14
昨天晚上尝试choice的时候.也没有进行判断.直接一直往下走...