中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-13 02:50
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 如是大师请进:关于你的贴《批处理教学》 查看 1,422 回复 4
楼 主 如是大师请进:关于你的贴《批处理教学》 发表于 2003-05-11 00:00 ·  中国 上海 徐汇区 电信
初级用户
★★
DOS爱好者
积分 478
发帖 100
注册 2003-04-22 00:00
23年会员
UID 1648
性别 男
状态 离线
在贴中有这么一段
====================================================
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……

如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end?

例如,test.bat的内容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag 应先判断数值最高的错误码
if errorlevel 2 goto mem
if errotlevel 1 goto end
===============================================


如果/c:后的返回码顺序是1234......
那么下面不是应该这样吗:
if errorlevel 3 goto end 应先判断数值最高的错误码
if errorlevel 2 goto mem
if errotlevel 1 goto defrag

|||||||  寻人启示:姓名:
| c●● ~年龄:20,性别:男
|  ♂▃~ 特征:帅.很帅.酷.特别酷....
| |︺英俊潇洒.风流倜傥,玉树临风→我

单钓E时代论坛
2 发表于 2003-05-12 00:00 ·  中国 湖北 武汉 汉阳区 电信
元老会员
★★★★★
步行的人
积分 9,654
发帖 3,351
注册 2003-03-11 00:00
23年会员
UID 1113
性别 男
来自 湖北
状态 离线
choice的/c参数允许用户设定选项,dos系统按照所给出的选项顺序依次返回。必须按照返回值以递减的顺序输入IF条件命令,因为此命令设定当返回值大于指定值时,ERRORLEVEL条件为真。所以,当用户按下D键时系统赋予其返回值为1,按下m,e键时为2,3。因为递减,所以设定:if errorlevel 3 goto defrag 应先判断数值最高的错误码
if errorlevel 2 goto mem
if errotlevel 1 goto end
弄花香满衣,掬水月在手。
明月鹭鸟飞, 芦花白马走。
我自一过后,野渡现横舟。
青云碧空在,净瓶水不流。
http://dos.e-stone.cn/guestbook/index.asp
======中國DOS聯盟=====
我的新网页http://rsds.7i24.com欢迎光顾
3 发表于 2003-05-12 00:00 ·  中国 上海 徐汇区 电信
初级用户
★★
DOS爱好者
积分 478
发帖 100
注册 2003-04-22 00:00
23年会员
UID 1648
性别 男
状态 离线
还是有点不明白,不过知道没错就行了
受教!

|||||||  寻人启示:姓名:
| c●● ~年龄:20,性别:男
|  ♂▃~ 特征:帅.很帅.酷.特别酷....
| |︺英俊潇洒.风流倜傥,玉树临风→我

单钓E时代论坛
4 发表于 2003-05-12 00:00 ·  中国 湖北 武汉 电信
元老会员
★★★★★
步行的人
积分 9,654
发帖 3,351
注册 2003-03-11 00:00
23年会员
UID 1113
性别 男
来自 湖北
状态 离线
呵呵。。。。。先记住,慢慢再领会哟。。。。看看灌水区mys的”DOS十诫“。。
弄花香满衣,掬水月在手。
明月鹭鸟飞, 芦花白马走。
我自一过后,野渡现横舟。
青云碧空在,净瓶水不流。
http://dos.e-stone.cn/guestbook/index.asp
======中國DOS聯盟=====
我的新网页http://rsds.7i24.com欢迎光顾
5 发表于 2003-10-15 00:00 ·  中国 山东 烟台 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re 如是大师:

“柏仔”提出的问题是正确的:按照choice的内容"choice /c:dme defrag,mem,end",errorlevel >= 3时,应该goto end,而非goto defrag,errorlevel >= 1亦然。


※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转: