Board logo

标题: 批处理命令中的choice 命令怎么用呢? [打印本页]

作者: 满天飞    时间: 2004-8-24 07:58     标题: 批处理命令中的choice 命令怎么用呢?

[这个贴子最后由满天飞在 2004/08/24 00:00am 第 1 次编辑]

----------------------------------------------
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
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
--------------------------------------------------
上面是对choice命令用法的说明,是我在网上看到的。
我照上面那样写了个批处理文件后执行,可是并没有出现“ defrag,mem,end[D,M,E]? ”给我选择,而直接出现“good bye”字样了。本来我用这个命令的意思就是要通过按不同的键去执行不同的命令的。现在也不知道错在什么地方,请教懂得用这个命令的朋友帮我这个忙吧!
作者: je64    时间: 2004-8-24 17:40     标题: 批处理命令中的choice 命令怎么用呢?


choice /c:12 > NUL
if errorlevel 2 goto NTFS
if errorlevel 1 goto FAT32
:NTFS
……
:FAT32
……
(按1执行FAT32下的内容,按2执行NTFS下的内容。错误返回代码要从后往前判断)
choice.com /c:   后跟的是可选项,这里是数字键1.2,也可以改成其它的键,默认是Y.N
choice.com /n    不提示任何信息,等待用户操作
choice.com /d:1  默认执行1
choice.com /t:10 等待用户操作10秒钟,如无操作则执行默认选项
choice.com TEXT  在可选项前显示TEXT字符串
作者: 满天飞    时间: 2004-8-24 23:43     标题: 批处理命令中的choice 命令怎么用呢?

[这个贴子最后由满天飞在 2004/08/24 03:50pm 第 1 次编辑]

有提示:choice.com命令不是内部命令,也不是外部命令。
是不是在A盘里一定要有这个“choice.com”才可以执行呢?


作者: general    时间: 2004-8-24 23:59     标题: 批处理命令中的choice 命令怎么用呢?

choice是外部命令,盘上必须有它
作者: 满天飞    时间: 2004-8-25 00:29     标题: 批处理命令中的choice 命令怎么用呢?

[这个贴子最后由满天飞在 2004/08/24 08:29pm 第 4 次编辑]

已找到choice.com了,能顺利实现。非常感谢各位高师指点!

作者: LiLianjiang    时间: 2004-10-7 19:03     标题: 批处理命令中的choice 命令怎么用呢?

很好!
作者: proimage    时间: 2006-6-13 15:06

非常好,我是在困惑此问题
作者: 思念了无痕    时间: 2006-10-17 00:31

不愧是版主,忧别人之所忧,乐他人之所乐。




欢迎光临 EZB 论坛 (http://ultraiso.net/ezbbbs/) Powered by Discuz! 6.1.0