Board logo

标题: [其他] 请教下choice 选项为大于十个的数字如何设置? [打印本页]

作者: yunyan100    时间: 2017-12-3 01:05     标题: 请教下choice 选项为大于十个的数字如何设置?

RT,choice,确实不错用于延时自动,现在有个问题请教下,选择是数字,但如何用的数字大于10个了?比如11,是由两个1组成的,所以就重复了,请问下如何支持1-30?
choice /c 123456789011 /n /m
作者: /zhqsystem/zhq    时间: 2017-12-3 18:01

本帖最后由 /zhqsystem/zhq 于 2017-12-3 18:03 编辑

choice是单字符识别可以用a-z表示,如果过多项建议用set/p变量获取方式,或者加二级choice菜单
作者: yunyan100    时间: 2017-12-3 22:59

回复 2# /zhqsystem/zhq
感谢回复,我是想用数字,真不行?
作者: /zhqsystem/zhq    时间: 2017-12-4 04:30

回复 3# yunyan100
单字符自动识别如果按11是识别1还是11呢,这才是程序考虑的问题
作者: codegay    时间: 2017-12-4 08:20

自己拿C或者 别的语言撸一个就不用在这浪费时间了。
作者: yunyan100    时间: 2017-12-4 10:43

回复 4# /zhqsystem/zhq


    输入1就跑下一步了,所以是1了,而且重复有误,我试过用变量来做为选项,但同样的,不会因为变量而是一个,我变量是=11,这里还是两个1了,我这里是要返回数字值,所以想尽可能是数字,既然不行,就是10以后用字母吧,然后赋值后再传出去了,tks
作者: /zhqsystem/zhq    时间: 2017-12-5 04:52

回复 6# yunyan100
这样写不会有错误的
:main
set "a="
set/p "a=
if /i %a%==1 ..
if /i %a%==5 ..
goto:main
:1
.....
再或者纯数字标签
:main
set "a="
set/p "a=
for /l %%i in (0,1,999)do if /i %a%==%%i goto:%%i
goto:main
...
作者: yunyan100    时间: 2017-12-5 14:29

本帖最后由 yunyan100 于 2017-12-5 14:30 编辑

回复 7# /zhqsystem/zhq


    首先感谢你的回复,我主要是在看choice能否完全用0-255(0123456789 10 11 12.....)这些数字,因为choice可以默认选择,可以延时自动执行,选择后不要回车就运行,但就是只能是单个,像10-99就是两个数字组成,所以造成问题,在请教

我现在用的下面这个,主是想完全用数字
,
  1. echo.&set cho=8&if "%dd%" equ "2" set cho=3&if "%dd%" equ "0" set cho=3
  2. echo.&choice /c 123456789abcdefghijk0z /n /m "%bb%11-20为a-k,%cho%秒后自动选择:%cc%" /t %cho% /d %cc%
  3. if %errorlevel%==21 (set pa=0&goto :xx)else (if %errorlevel%==22 (set pa=z&goto :xx)else (set pa=%errorlevel%&goto :xx))
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2