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 choice.com 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 将返回与用户所选对应的值。
上一篇: 融资才3天就被骂上头条 明星邮件APP做错了什么?
下一篇: 煮鸡汤要不要焯水