中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 请教批处理的问题 上一主题 | 下一主题
19890321
初级用户





积分 34
发帖 9
注册 2006-3-2
状态 离线
『楼 主』:  请教批处理的问题

@echo off
choice /c:tde type,del,end
if errorlevel 3 goto c
if errorlevel 2 goto b
if errorlevel 1 goto a
:a
c:\
type 222.txt
echo.
pause
goto b
:b
c:
del 222.txt
cls
goto c
:c
echo good bye

============

@echo off
choice /c:tde type,del,end
if errorlevel 3 goto a
if errorlevel 2 goto b
if errorlevel 1 goto c
:a
c:\
type 222.txt
echo.
pause
goto b
:b
c:
del 222.txt
cls
goto c
:c
echo good bye

为什么第一个按照命令执行 而第二个却按照正常顺序执行???

2006-3-4 11:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 2 楼』:  

if errorlevel 3 goto c
if errorlevel 2 goto b
if errorlevel 1 goto a   

if errorlevel 3 goto a
if errorlevel 2 goto b
if errorlevel 1 goto c
能一样吗?顺序本身就不一样,执行的顺序也就不一样了

2006-3-4 11:34
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
19890321
初级用户





积分 34
发帖 9
注册 2006-3-2
状态 离线
『第 3 楼』:  

@echo off
choice /c:tde type,del,end
if errorlevel 1 goto c
if errorlevel 2 goto b
if errorlevel 3 goto a
:a
c:\
type 222.txt
echo.
pause
goto b
:b
c:
del 222.txt
cls
goto c
:c
echo good bye

这个呢

2006-3-4 12:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 4 楼』:  

这个啊,呵呵,不管你按哪个最后就显示 good bye,呵呵

2006-3-4 13:14
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
wudongjin
新手上路





积分 18
发帖 10
注册 2006-3-16
状态 离线
『第 5 楼』:  

不太看的懂,晕。

2006-5-28 14:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
shuiruobing
新手上路





积分 15
发帖 11
注册 2006-5-29
状态 离线
『第 6 楼』:  

批处理很简单啊

2006-5-31 14:41
查看资料  发送邮件  发短消息 网志  OICQ (183921919)  编辑帖子  回复  引用回复
kekewithdos
新手上路





积分 8
发帖 4
注册 2006-6-3
状态 离线
『第 7 楼』:  

新手上路  学习了   谢谢

2006-6-3 13:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xjmxjm1234
中级用户

论坛第一菜鸟


积分 361
发帖 166
注册 2006-4-15
状态 离线
『第 8 楼』:  



  Quote:
@echo off
choice /c:tde type,del,end
if errorlevel 1 goto c
if errorlevel 2 goto b
if errorlevel 3 goto a
:a
c:\
type 222.txt
echo.
pause
goto b
:b
c:
del 222.txt
cls
goto c
:c
echo good bye

这个呢



  Quote:
这个啊,呵呵,不管你按哪个最后就显示 good bye,呵呵

严重支持4楼的观点

if errorlevel n <command>
指的是在错误返回码大于或等于n时,执行后面的命令
所以对于:
if errorlevel 1 goto c
来说,不管选什么都会转移到 :c ,等着你的只有 显示 good bye 了

所以在判断错误返回码时,一定要从最高位开始判断!

[ Last edited by xjmxjm1234 on 2006-6-3 at 15:19 ]



Diskette  Operating  System
2006-6-3 15:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ahqueer
新手上路




积分 12
发帖 5
注册 2006-6-3
状态 离线
『第 9 楼』:  

新手上路  学习了   谢谢

2006-6-3 20:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 10 楼』:  

怎么我运行这个批处理时却进入了一个死循环.

2006-6-26 17:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 11 楼』:  

执行完a:后少了个goto b

2006-6-26 18:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
arding
初级用户





积分 90
发帖 38
注册 2006-1-6
状态 离线
『第 12 楼』:  

楼主让我们玩“大家来找碴”的游戏吗?BS一下。

2006-6-27 11:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyz985
初级用户




积分 194
发帖 35
注册 2005-1-10
来自 上海
状态 离线
『第 13 楼』:  

if %errorlevel%==1 ...
if %errorlevel%==2 ...



我的主页:http://yyz985.go.nease.net
QQ:249590012    yyz985@yahoo.com.cn
2006-6-27 15:01
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (249590012)  编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


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

楼主的批处理里的GOTO用的有的问题:看下面的
@echo off
choice /c:tde type,del,end
if errorlevel 3 goto c
if errorlevel 2 goto b
if errorlevel 1 goto a
:a
c:\
type 222.txt
echo.
pause
goto end
:b
c:
del 222.txt
cls
goto end
:c
echo good bye
:end



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-6-27 17:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiongwei2624
初级用户





积分 96
发帖 44
注册 2006-6-26
来自 深圳
状态 离线
『第 15 楼』:  

choice /c:tde type,del,end
什么意思!!

2006-6-29 16:03
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (3099591)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: