批处理(bat)choice命令详解

语法

choice [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
choice 命令可以让用户输入一个字符,从而运行不同的命令

参数

$ 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。"

参数说明:

  • /n 参数
    如果加上 /n 参数,那么屏幕上的提示就会被屏蔽了.在实际运用中,为了保持界面美观,通常都加上 /n 参数。如:
    choice /c 123 /n

  • >nul
    choice /c 12 /n
    当你选择时,你输入的字符会显示在屏幕上,影响美观!
    choice /c 12 /n >nul
    可以屏蔽你输入的字符,不在屏幕上显示

  • /t
    choice /t/d还有延时功能,众所周知,用ping可以延时
    ping /n 2 127.1 >nul
    choice也可以
    choice /c k /n /t 2 /d k
    choice还有一个好处:当你想快速跳过时,不停按k即可

  • /m
    echochoice,相当于set /p a=〔message〕一样

  • /cs
    区分大小写,通常是不区分的

返回值判断

如果是set /p

set /p a=
if %a%==1 ………………
if %a%==2 ………………
if %a%==3 ………………

choice的返回值是环境变量errorlevel的值
例如:choice /c abc /n
当你选择a时,a是第1个选项,所以errorlevel的值为1
当你选择b时,b是第2个选项,所以errorlevel的值为2
当你选择c时,c是第3个选项,所以errorlevel的值为3

那么,语句应该这样写:

choice /c abc /n
if %errorlevel%==1 ………………
if %errorlevel%==2 ………………
if %errorlevel%==3 ………………

示例

choice /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"`

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值