中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: (结了)if判断errorlevel的问题 上一主题 | 下一主题
lcleft
社区乞丐





积分 -31
发帖 32
注册 2009-3-12
状态 离线
『楼 主』:  (结了)if判断errorlevel的问题

@echo off
net
IF %ERRORLEVEL% == 1 echo net user 执行失败了!


奇怪,执行成功后仍然显示执行失败
也许IF不能作出判断,或者有其他办法
************
************
邮箱在这里lcleft@163.com

[ Last edited by lcleft on 2009-4-14 at 23:22 ]

2009-4-9 12:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 2 楼』:  

没什么好奇怪的,
成功,不成功都执行一次,
在命令后面加上这行:echo %errorlevel%&pause
自己多测试几次看看就明白了



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-4-9 13:08
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
lcleft
社区乞丐





积分 -31
发帖 32
注册 2009-3-12
状态 离线
『第 3 楼』:  

求一个IF判断错误码的例子,
最好是可以在CMD下测试

[ Last edited by lcleft on 2009-4-10 at 04:26 ]

2009-4-10 02:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

ERRORLEVEL number 如果最后运行的程序返回一个等于或大于
                   指定数字的退出代码,指定条件为 true。

    IF DEFINED variable command

其中, compare-op 可以是:

    EQU - 等于
    NEQ - 不等于
    LSS - 小于
    LEQ - 小于或等于
    GTR - 大于
    GEQ - 大于或等于


@echo off
net usertest
set el=%ERRORLEVEL%
IF "%el%"=="0"  echo net user 执行失败了!
pause

要么直接用EQU,NEQ这种……
要么用个变量保存下errorlevel

类型要一致。都是数字比较,或者字符串比较。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2009-4-10 23:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lcleft
社区乞丐





积分 -31
发帖 32
注册 2009-3-12
状态 离线
『第 5 楼』:  

不太明白4楼的意思,也没有解决
不明白第二行net  usertest 这个命令的意思
倒数第二行的net user这个命令也不清楚
当我在echo net user前加上&&时,看到的是似乎IF并没有做出判断

[ Last edited by lcleft on 2009-4-11 at 11:17 ]

2009-4-11 11:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 6 楼』:  

这样可以吗
@echo off
net usertest
IF %ERRORLEVEL% == 2 echo net user 执行失败了!
pause



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2009-4-12 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lcleft
社区乞丐





积分 -31
发帖 32
注册 2009-3-12
状态 离线
『第 7 楼』:  

还是不行,
按照版主的代码执行,还是没有显示失败

2009-4-13 01:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 8 楼』:  

你首先要知道执行该命令将会出现的返回码是什么才能进行编程的。
给一个批,自己运行测一下。
@echo off
echo.********测试命令回返码的批处理**********
:lp
set in=
echo.
set/p in=输入你的要执行的命令如:net usertest  :
if "%in%"=="" (goto :eof) else (%in%)
echo ********************************
echo.此次执行的返回码是:%errorlevel%
echo ********************************
goto :lp




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-4-13 02:01
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 9 楼』:  

@echo off
net usertest
IF ERRORLEVEL  3 echo net user 执行失败了!(ERRORLEVEL 3)
IF ERRORLEVEL  2 echo net user 执行失败了!(ERRORLEVEL 2)
IF ERRORLEVEL  1 echo net user 执行失败了!(ERRORLEVEL 1)
pause
自己看下ERRORLEVEL是几 然后自己修改下



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2009-4-13 02:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lcleft
社区乞丐





积分 -31
发帖 32
注册 2009-3-12
状态 离线
『第 10 楼』:  

鸣谢
8楼的代码
楼主的关爱
以及前面的无名英雄
郑重宣布,
一知半解中
希望有大侠或女士弄个SET的用法啊,俺的EMAIL----lcleft@163.
com

[ Last edited by lcleft on 2009-4-14 at 03:23 ]

2009-4-14 03:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





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

本版搜索“set”



2009-4-14 05:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lcleft
社区乞丐





积分 -31
发帖 32
注册 2009-3-12
状态 离线
『第 12 楼』:  

漠视群

2009-4-20 10:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
THENEWLIFE
初级用户




积分 78
发帖 64
注册 2008-8-29
状态 离线
『第 13 楼』:  

var=%%random%%%%%%2
请问下这句什么意思
%random%是随即数的意思,但是这里这么多%后面还加个2不知道什么意思

2009-4-21 04:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lcleft
社区乞丐





积分 -31
发帖 32
注册 2009-3-12
状态 离线
『第 14 楼』:  

我也不知道啊
去搜索一下看看

2009-4-26 12:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: