标题: 如是大师请进:关于你的贴《批处理教学》
[打印本页]
作者: 柏仔
时间: 2003-5-11 00:00
标题: 如是大师请进:关于你的贴《批处理教学》
在贴中有这么一段
====================================================
choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……
如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?
例如,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
作者: 如是大师
时间: 2003-5-12 00:00
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
作者: 柏仔
时间: 2003-5-12 00:00
还是有点不明白,不过知道没错就行了
受教!
作者: 如是大师
时间: 2003-5-12 00:00
呵呵。。。。。先记住,慢慢再领会哟。。。。看看灌水区mys的”DOS十诫“。。
作者: willsort
时间: 2003-10-15 00:00
Re 如是大师:
“柏仔”提出的问题是正确的:按照choice的内容"choice /c:dme defrag,mem,end",errorlevel >= 3时,应该goto end,而非goto defrag,errorlevel >= 1亦然。