choice
choice命令允许用户在进行一系列选择时阻止批处理文件和脚本运行。 具有使用choice命令的批处理文件的Microsoft Windows 2000和Windows XP用户应修改该批处理文件以使用MS-DOS set命令。
查看英文版
1 choice 运行系统环境
2 choice 语法
3 choice 示例
choice 运行系统环境
Windows 95
Windows 98
Windows vista
Windows 7
Windows 8
Windows 10
MS-DOS 6.0及更高版本
choice 语法
Windows Vista和更高版本的语法
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
/C choices | 指定要创建的选项列表。 默认列表为“ YN”。 |
/N | 隐藏提示中的选项列表。 显示提示前的消息,并且选项仍处于启用状态。 |
/CS | 允许选择区分大小写的选项。 默认情况下,该实用程序不区分大小写。 |
/T timeout | 做出默认选择之前要暂停的秒数。 可接受的值是0到9999。如果指定0,则不会暂停,并且选择了默认选项。 |
/D choice | 在nnnn秒后指定默认选项。 字符必须在/ C选项指定的选项集中,并且还必须使用/ T指定nnnn。 |
/M text | 指定在提示之前显示的消息。 如果未指定,则该实用程序仅显示提示。 |
注意:
ERRORLEVEL 环境变量设置为从选项集中选择的键的索引。列出的第一个选项返回值1,第二个返回值2,依此类推。如果用户按下不是有效选项的键,该工具会发出警告蜂鸣声。如果工具检测到错误情况,它将返回255的ERRORLEVEL值。如果用户按Ctrl + BREAK或Ctrl + C,则该工具将返回ERRORLEVEL值0。在批处理程序中使用ERRORLEVEL参数时,请以降序列出订购。
例子:
CHOICE /? CHOICE /C YNC /M "Press Y for Yes, N for No or C for Cancel." CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M "Select a for option 1 and b for option 2." CHOICE /C ab /N /M "Select a for option 1 and b for option 2."Windows XP和更早的语法
choice [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]选项
/C[:]choices |
指定允许的密钥。默认为是/否。 |
/ N | 不显示选项和“?” 在提示字符串的末尾。 |
/S | 将选择键区分大小写。 |
/ T [:] c,nn | nn秒后默认选择为c。 |
text | 显示提示字符串。 |
查看英文版
choice 示例
如何使用选择并在批处理文件中进行设置
如何在批处理文件中使用set
下面是如何使用set命令使批处理文件用户能够按1、2或3并执行所按选项的步骤的方法。
@ECHO off cls :start ECHO. ECHO 1. Print Hello ECHO 2. Print Bye ECHO 3. Print Test set choice= set /p choice=Type the number to print text. if not '%choice%'=='' set choice=%choice:~0,1% if '%choice%'=='1' goto hello if '%choice%'=='2' goto bye if '%choice%'=='3' goto test ECHO "%choice%" is not valid, try again ECHO. goto start :hello ECHO HELLO goto end :bye ECHO BYE goto end :test ECHO TEST goto end :end pause
在上面的批处理文件中,当用户输入数据并使用set / p选择行按Enter时,将分配%choice%变量。 如果输入1、2或3,则goto转到相应的标签并执行回显,然后转到批处理文件的末尾。
- 请参阅我们的set命令页面以获取更多信息和选项。
以下是如何使用choice命令提供选项1、2或3并执行所按选项的步骤。
@ECHO OFF :BEGIN CLS CHOICE /N /C:123 /M "PICK A NUMBER (1, 2, or 3)"%1 IF ERRORLEVEL ==3 GOTO THREE IF ERRORLEVEL ==2 GOTO TWO IF ERRORLEVEL ==1 GOTO ONE GOTO END :THREE ECHO YOU HAVE PRESSED THREE GOTO END :TWO ECHO YOU HAVE PRESSED TWO GOTO END :ONE ECHO YOU HAVE PRESSED ONE :END pause
在上面的批处理文件中,choice具有1、2或3选项。 如果按下其中任何一个,它将转到带有goto的标签,并回显所按下的数字。
查看英文版