中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 20:06
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS学习入门 & 精彩文章 (教学室) » 请教批处理的问题
可打印版本  3,083 / 16
第1楼 19890321 发表于 2006-03-04 11:25
初级用户 发帖 9 积分 34
请教批处理的问题
@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

为什么第一个按照命令执行 而第二个却按照正常顺序执行???
第2楼 bagpipe 发表于 2006-03-04 11:34
银牌会员 发帖 425 积分 1,144 来自 北京
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
能一样吗?顺序本身就不一样,执行的顺序也就不一样了
第3楼 19890321 发表于 2006-03-04 12:31
初级用户 发帖 9 积分 34
@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

这个呢
第4楼 bagpipe 发表于 2006-03-04 13:14
银牌会员 发帖 425 积分 1,144 来自 北京
这个啊,呵呵,不管你按哪个最后就显示 good bye,呵呵
第5楼 wudongjin 发表于 2006-05-28 14:44
新手上路 发帖 10 积分 18
不太看的懂,晕。
第6楼 shuiruobing 发表于 2006-05-31 14:41
新手上路 发帖 11 积分 15
批处理很简单啊
第7楼 kekewithdos 发表于 2006-06-03 13:20
新手上路 发帖 4 积分 8
新手上路 学习了 谢谢
第8楼 xjmxjm1234 发表于 2006-06-03 15:17
中级用户 发帖 166 积分 361
@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

这个呢

这个啊,呵呵,不管你按哪个最后就显示 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 ]
第9楼 ahqueer 发表于 2006-06-03 20:37
新手上路 发帖 5 积分 12
新手上路 学习了 谢谢
第10楼 htysm 发表于 2006-06-26 17:43
高级用户 发帖 415 积分 866
怎么我运行这个批处理时却进入了一个死循环.
第11楼 fastslz 发表于 2006-06-26 18:28
铂金会员 发帖 2,315 积分 5,493 来自 上海
执行完a:后少了个goto b
第12楼 arding 发表于 2006-06-27 11:59
初级用户 发帖 38 积分 90
楼主让我们玩“大家来找碴”的游戏吗?BS一下。
第13楼 yyz985 发表于 2006-06-27 15:01
初级用户 发帖 35 积分 194 来自 上海
if %errorlevel%==1 ...
if %errorlevel%==2 ...
第14楼 不得不爱 发表于 2006-06-27 17:38
超级版主 发帖 2,044 积分 5,310 来自 四川南充
楼主的批处理里的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
第15楼 xiongwei2624 发表于 2006-06-29 16:03
初级用户 发帖 44 积分 96 来自 深圳
choice /c:tde type,del,end
什么意思!!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023