dos命令行choice命令使用详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

dos命令⾏choice命令使⽤详解
Choice 命令
使⽤此命令可以让⽤户输⼊⼀个字符,从⽽运⾏不同的命令。

使⽤时应该加/c:参数,c:后应写提⽰可输⼊的字符,之间⽆空格。

它的返回码为1234……。

这个命令在有些Windows版本(⽐如WindowsXP)上可能不可⽤。

语法:
CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显⽰⽂本]
其中,/C表⽰可选则的按键,/N表⽰不要显⽰提⽰信息,/S表⽰⼤⼩写字符敏感⽅式,/T表⽰若在批定的时间内没有选择的话,⾃动执⾏/C中定义的某个选择值。

显⽰⽂本是CHOICE命令执⾏时的提⽰信息。

选择结果将⽤ERRORLEVEL值来表⽰。

⽰例:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag
REM 应先判断数值最⾼的错误码
if errorlevel 2 goto mem
if errorlevel 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,⽂件结束。

可替换的命令
对WindowsXP上不能使⽤CHOICE命令的情形,如果想使⽤相似的功能,可以使⽤ SET 命令,参见Set 命令 /P选项。

choice⼀般在cmd批处理中⽤来根据⽤户输⼊执⾏不同的操作,⾮常实⽤,例如
下⾯是两个软件根据⽤户选择来执⾏
@echo off
远程协助⼯具集
:start
cls
color 0a
MODE con: COLS=60 LINES=20
echo.
echo ===============================
echo 请选择远程⼯具
echo ===============================
echo.
echo 1. AnyDesk
echo.
echo 2. TeamViewer
echo.
echo.
:cho
set choice=
set /p choice= 请输⼊⼯具编号:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto AnyDesk
if /i "%choice%"=="2" goto TeamViewer
:AnyDesk
AnyDesk.exe
exit
:TeamViewer
TeamViewer.exe
exit
下⾯来介绍⼀下choice的命令使⽤
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 键,该⼯具会返回 0 的 ERRORLEVEL 值。

在⼀个批程序中使⽤ ERRORLEVEL 参数时,将参数降序排列。

⽰例:
CHOICE /?
CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。

"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。

"
CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。

"
下⾯是来⾃国外⽹站的介绍
The CHOICE command was introduced in MS-DOS 6 and is still available in MS-DOS 7 (Windows 95/98).
In Windows NT 4, 2000 and XP, CHOICE is no longer a part of the standard distribution. It is, however, available as part of the Windows NT 4 Resouce Kit.
On the other hand, if you still have that old unused MS-DOS 6 or Windows 95/98 version lying around, you can use the from that version instead. (*)
Just copy it to a directory that is in your PATH.
Note: 16-bit DOS versions will not work in 64-bit Windows versions.
CHOICE is available again in Windows Vista and later versions.
⼤部分意思就是这个命令会在以后的系统中⼀直存在,但注意16位的系统⽆法在64位系统⾃带了,⽽我们安装的64位系统已经集成了64的choice命令,⼤家可以放⼼使⽤。

注释
ERRORVALUE 环境变量被设置为⽤户从选择列表中选择的键的索引。

您指派的第⼀个键将返回值 1,第⼆个将返回值 2,第三个将返回值 3,依此类推。

如果⽤户按下⼀个不在您指派的键中间的键,Choice.exe 将发出警告声(即,它向控制台发送⼀个 BEL 或 07h 字符)。

如果 Choice.exe 检测到错误情况,它就会返回错误值 255。

如果⽤户按 Ctrl+Break 或
Ctrl+C,Choice.exe 就会返回错误值 0。

当您在批处理程序中使⽤错误值参数时,请将它们以降序列出。

⽰例
请在批处理⽂件中键⼊下列语法:
choice /c ync
运⾏ Choice.exe 时出现下列语句:
[Y,N,C]?
请在批处理⽂件中键⼊下列语法:
choice /c ync /n /m Yes, No or Continue?
运⾏ Choice.exe 时出现下列语句:
Yes, No, or Continue?
按如下⽅式将⽂字添加到语法中:
choice /c ync /m Yes, No, or Continue
运⾏ Choice.exe 时出现下列语句:
Yes, No, or Continue [Y,N,C]?
/t 命令⾏选项将设置⼀个时间限制(在该限制内⽤户必须响应),并指定当⽤户在该时间限制内没有作出响应时将显⽰的值。

要将时间限制设置为五秒并指定 N 作为默认值,请在批处理程序中键⼊下列命令⾏:
choice /c ync /t 5 /d n
当批处理⽂件启动 Choice.exe 时,将出现下列消息:
[Y,N,C]?
如果⽤户未能在五秒钟内按下⼀个键,Choice.exe 将选择 N 并返回错误值 2。

否则,Choice 将返回与⽤户所选对应的值。

相关文档
最新文档