【批处理高手进来拿分50】errorlevel与%errorlevel%的区别

如题别搞英文的认为没区别的一边凉快去下面的例子先前都一看过还是没找到莪想要的... 如题
别搞英文的
认为没区别的一边凉快去
下面的例子先前都一看过 还是没找到莪想要的
展开
 我来答
两只路边的蚂蚁ls
2009-11-19 · TA获得超过4467个赞
知道大有可为答主
回答量:2127
采纳率:100%
帮助的人:1360万
展开全部
判断上个命令的返回值,if errorlevel 数值 command 语句
这个语句是用于判断上一个命令执行的返回值errorlevel,我们还是先来看看例子,

例13
@echo off
net user
if %errorlevel% == 0 (echo net user 命令执行成功) else (echo net user 命令执行失败)
Pause

注意:%errorlevel% 这是个系统变量,所以用两个%括起来,这里的==为两个连续的=
也许有些朋友说我上面的例子是不是写错了?按照语法应该写成“if errorlevel 0”才对的呀。
如果你是这样用的话,那你就错了,还真不信呀?OK,我们来设计个实验看看

例14
@echo off
set /p input=请输入任意一条命令:
if errorlevel 0 (echo %input% 命令执行成功) else (echo %input% 命令执行失败)
pause
用这种语法,不管你前面的命令,是否执行成功,它都会认为命令成功了。何解?

if errorlevel 语句的特点:
当使用 if errorlevel 0 cmmand 句式时,它的含义是:如果返回的错误码值大于或等于0 的时候,将执行cmmand
操作;
当使用 if %errorlevel%==0 cmmand 句式时,它含义是:如果返回的错误码值等于0 的时候,将执行cmmand操作。

一般上一条命令的执行结果返回的值只有两个,"成功"用0 表示 "失败"用 1 表示,实际上,errorlevel 返回值可
以在0~255 之间,
例如xcopy 默认的errorlevel 值就有5 个,分别表示5 种执行状态:

0复制文件成功
1 未找到复制文件
2 用户通过CTRL C 终止了xcopy操作
4 出现了初始化错误
5 出现了磁盘写入错误

--------------------
如果你认真看完,绝对有收获。现在我都不用errorlevel了,一直是用%errorlevel%

参考资料: 这是我收藏的一个批处理教程讲的,教程上标注的来源是“批处理之家”bbs.bathome.cn

天一弦剑lover
2009-11-19 · TA获得超过232个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:126万
展开全部
区别在使用逻辑判断语句if时体现:
就一句话:
if errorlevel 1 完全等价于等价于 if %errorlevel% geq 1
也就是说在条件语句中"errorlevel 1"隐式
表示了"%errorleve%>=1"这个条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千羽之城
2009-11-19 · TA获得超过4510个赞
知道大有可为答主
回答量:2132
采纳率:0%
帮助的人:1415万
展开全部
第二种是错误用法。第一种用法:

if errorlevel 1 statement

大多数dos程序成功的返回值都是0{排除少部分程序},返回值1是失败或者错误。而较大的返回值先于0返回,所以一般来说判断返回值1即可,比如:

if errorlevel 1 goto do something
if errorlevel 0 goto do soemthine

errorlevel的引用时不需要%%来包围的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-11-27
展开全部
批处理中如果使用"Set ErrorLevel=n"这样的语句,那么在之后使用%ErrorLevel%的值都将是n,而不是前一句返回的错误码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式