[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] (已解决)批处理如何获取choice用户输入的数字?

本帖最后由 maghreb 于 2020-11-15 17:20 编辑

背景:用户输入进入同一跳转进行安装(或其他操作),那么需要根据用户输入(只能输入要求的如/c:123456789。。。等整数字)的变量,对跳转后同一标签内的安装内容按此变量进行调整以满足不同安装要求,这样可以省很多代码(否则要重复很多标签代码进行安装),如下:
choice /c:123456789 /n /m "输入你的选择 :"
。。。
if errorlevel 4 goto :install
if errorlevel 3 goto install
if errorlevel 2 goto :install
if errorlevel 1 goto :install

请教:1、如何获取choice用户输入的数字变量?
         2、数字9之后该如何表达?如10、11、12。。。(可能有二三十个


非常谢谢!

这个可以,但是如何把下面100行,简化成一行,这是难点

TOP

回复 4# qixiaobin0715

这样容易输入小数,会导致安装错误

TOP

回复 5# Batcher


    就是我要做一个提取工具,按我做的列表文件进行提取,列表文件可以是123456。。。100。标签里的提取代码是一样的,可以用变量,所以需要按输入的多少数字(必须是整数)来获取这个变量,而去按那个列表文件进行执行提取

如果不是整数,可以写成
:main
set /p input=请输入1至100的数字:
if %input% GTR 1 ( if %input% LSS 100  goto :install )
goto main
::install

TOP

感谢两位大神的思路,均解决了我的问题再次感谢

TOP

回复 11# yhcfsr

set /p select=输入你的选择:
if "%select%"=="0" goto :mainmenu
echo %select%|findstr /r "[^0-9]"&&goto :mainmenu||if %select% gtr 50 goto :mainmenu
goto :install

刚才试了一下,qixiaobin0715兄的执行有效,但不能输入个位,我综合两位的意见, 修改后可以正确达到要求,感谢两位大神

TOP

返回列表