中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 01:06
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS学习入门 & 精彩文章 (教学室) » 如是大师请进:关于你的贴《批处理教学》
可打印版本  1,421 / 4
第1楼 柏仔 发表于 2003-05-11 00:00
初级用户 发帖 100 积分 478
如是大师请进:关于你的贴《批处理教学》
在贴中有这么一段
====================================================
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
第2楼 如是大师 发表于 2003-05-12 00:00
元老会员 发帖 3,351 积分 9,654 来自 湖北
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
第3楼 柏仔 发表于 2003-05-12 00:00
初级用户 发帖 100 积分 478
还是有点不明白,不过知道没错就行了
受教!
第4楼 如是大师 发表于 2003-05-12 00:00
元老会员 发帖 3,351 积分 9,654 来自 湖北
呵呵。。。。。先记住,慢慢再领会哟。。。。看看灌水区mys的”DOS十诫“。。
第5楼 willsort 发表于 2003-10-15 00:00
元老会员 发帖 1,512 积分 4,432
Re 如是大师:

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


[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023