关于CHOICE命令
在批处理程序中,提示用户作一选择。显示一指定的提示符并暂停等待用户从
一组指定的键中作出选择。该命令只能用在批处理程序中。
有关ERRORLEVEL参数的详细介绍,见 和 命令。
语法
CHOICE keys] c,nn]
参数
text
指出要在提示符前显示的正文。仅当在提示符前的正文中包括有开关字符
(/)作为正文内容时,才要用双引号。如果不指定正文,CHOICE仅显
示一个提示符。
开关项
/Ckeys
指定提示中可接受的按键。显示时,这些键出现在内,键之间以逗号分隔,
最后跟一问号。若不指定/C开关,CHOICE采用隐含值YN。冒号(:)是可
选项。
/N
让CHOICE不显示提示符,但提示符前的正文仍然显示。若指定了/N开关,
所指定的按键仍有效。
/S
使CHOICE区别大小写字母。若没指定/S,CHOICE对任何用户指定的
键,大小写不作区分。
/Tc,nn
在对某一指定关键字作默认设置前,让CHOICE等待一指定秒数的时间。
/T转换中的值如下所设:
c
指定等待nn秒后作为默认值的那个字符。该字符必须出现在/C开关后的按
键集中。
nn
指定暂停的秒数。可接受0-99之间的值。若指定为0,表示默认设置前不
暂停。
CHOICE─例子
为了让用户在批处理文件中见到有关提示的信息, 可在批处理文件用CHOICE
命令。
如, 在批处理文件中采用了以下语法形式:
choice /c:ync
则用户在CHOICE运行时,将看到:
?
在上例语句中,加入正文:
choice /c:ync Yes, No, or Continue
choice /c:ync Yes, No, or Continue
CHOICE启动时,用户看到:
Yes, No, or Continue ?
去掉提示符后用户所见的信息
如下例,在批处理程序中用/N转换把提示符去掉:
choice /n Yes, No, or Continue?
在CHOICE执行时,用户只见到指定的正文:
Yes, No, or Continue?
用了T开关后用户所见的信息
如果在批处理程序中用以下语句:
choice /c:ync /t:n,5
当CHOICE执行时,用户会看到:
?
5秒后,用户没按任何键,CHOICE就选择N且返回一个ERRORLEVEL值2。如果5秒
内按下某键,CHOICE返回与用户选择相应对的值。
启动计算机时,若想让用户选择是否要消除C盘的碎片,可在AUTOEXEC.BAT文
件中加入下列语句:
choice Defrag drive /ty,5
if errorlevel 2 goto SkipDefrag
defrag c:
:SkipDefrag
若在5秒内按下N,DEFRAG将不会运行,CHOICE返回ERRORLEVEL值为2。如果5秒
内没按下N,或选择了Y,则对C盘运行DEFRAG。
在批处理程序中使用CHOICE
下面的批处理程序演示如何利用CHOICE选项,让用户选择执行三个程序之一:
MS-DOS编辑器、Microsoft Anti-virus或Microsoft Backup。
注意,这里IF ERRORLEVEL语句是按递减序列出的。如果由CHOICE返回
ERRORLEVEL参数的值大于或等于IF命令所指定的参数,MS-DOS将认为IF语句为真。
@echo off
cls
echo.
echo A Microsoft Editor
echo B Microsoft Anti-Virus
echo C Microsoft Backup
echo.
choice /c:abc Choose an option
if errorlevel 3 goto MSBackup
if errorlevel 2 goto Msav
if errorlevel 1 goto Edit
:Edit
edit
goto End
:Msav
msav
goto End
:Msbackup
msbackup
goto End
:End
熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:
http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui