批处理set/p命令如何让用户输入时,只能输入特定的值。如只能输1位数字,只能输数字,只能输1000以内的

如题所述

简单说,就是在它下面先判断(通常可用 if 命令),不满足的用goto 返回重新输入,如加上清屏,就好象被控制只能输入什么了(提醒一下用if 判断时容易犯的错是忽略输入为空,如首先用if 的判断式里不是加上引号的来判断,就容易出错)
很多项的时候,需要会用findstr命令可以简化代码,比如
echo %aa%|findstr "[^0-9]" >nul&&goto :r
表示 如果变量aa里含有非数字或为空就转到 :r 标签处
findstr 的使用相对比较复杂,得段时间才能得心就手
你可以再追问一项具体的需求,帮你写一个,没掌握findstr的用法是不容易自己更改正确的追问

比如说。我想让set / p a:= (这里只能输入12345这五个数字。或是只能输入ABC这三个字母,输入其他全部提示错误)

追答

只能是12345之一的单个数:
echo %aa%|findstr /x "[1-5]" >nul||(
echo 输入有误,按任意键返回&pause>nul
goto :r)
如果是ABC 只需 [ ] 里改成[A-C]
如果想忽略大小写 改 findstr /ix
如果想要12345ABCQ之一 [1-5A-CQ]
关键要自己看懂findstr /? 还有不清楚的,如在线可 HI 问我

温馨提示:内容为网友见解,仅供参考
无其他回答

批处理set\/p命令如何让用户输入时,只能输入特定的值。如只能输1位数字...
简单说,就是在它下面先判断(通常可用 if 命令),不满足的用goto 返回重新输入,如加上清屏,就好象被控制只能输入什么了(提醒一下用if 判断时容易犯的错是忽略输入为空,如首先用if 的判断式里不是加上引号的来判断,就容易出错)很多项的时候,需要会用findstr命令可以简化代码,比如 echo %aa...

批处理bat文件怎么能每次运行都能自己输入一个字符串,然后存入一个变量...
只能在这一次的脚本运行期间能够使用的话:set\/p 语句可以帮助你set\/p a=请输入字符数据:那么此时 a 变量则保存着您输入的字符数据如果您需要这个程序永远运行期间都存在这个字符数据则直接 set 定义一个字符串变量,

set \/p的用法
set \/p设置一个外部读取的变量,也可以做输出用例,设置变量:set \/p str=输入str的值,可以是数字也可以是字符:&echo %str%不换行输出:set \/p=要输出的内容。<nul做输出时<nul不能掉,即从空设备读取。否则就要输入一个值。

批处理set \/p怎么用?
set \/p username=请输入用户名 执行到这句时,会提示请输入用户名,并等待用户从键盘上输入字符 然后将用户输入的内容存在username变量中

如何限制批处理中set的输入范围?
echo 1、创建文件夹 echo.echo 2、删除文件夹 echo.echo 3、进入文件夹 echo.echo.set \/p xz= 请选择:if \/i "%xz%"=="1" goto no1 if \/i "%xz%"=="2" goto no2 if \/i "%xz%"=="3" goto no3 if \/i %xz% GTR "3" goto error if \/i %xz% LSS "1" goto...

批处理如何根据输入的内容来运行不同的命令
set \/p aa=请输入命令:copy a.txt b.txt ;本行假定运行时输入的 ...aa ...这里的%aa%就代替了运行时输入的copy a.txt b.txt 。你说的转不同盘符就更不在话下了,当然一般都不会这么用来输入完整的命令,不然要批处理干什么?更多时候用在GOTO上,那么使用时只需输入一个数或字母就能...

...框只能输入数字,若输入的不是数字提示:请输入数字。
具体如下:if(t1.getText()!=null && t1.getText().length()==19&& t1.getText().matches("\\\\d{19}")){ t1.setEditable(false);t2.setEditable(true);b1.setEnabled(false);} else if(t1.getText()!=null && t1.getText().length()==19)t1.setText("请输入数字");t2 处理类似 ...

批处理命令set\/p var写在if里面为什么取不到本次输入的var的值,只能取...
开启变量延迟。在文件开头架上setlocal enabledelayedexpansion,并且变量用叹号!替换百分号%括起来。

批处理中 等待用户输入一个值 以确定接下来的操作 用神马命令呢?
1、set \/p 变量名=显示内容 echo off set\/p option=请输入你的选择:if "%option%"=="1" echo 您输入了1 if "%option%"=="2" echo 您输入了2 ::以上两个"echo ***"可以换成你自己的命令 pause 2、choice echo off choice \/c 12 \/m 请输入你的选择:if errorlevel 2 echo 你输入...

在批处理当中如何自动输入某个数字并执行,执行后再次输入一个数字执行...
set\/p aa=请选择序号后回车:echo.%aa%|findstr "^[1-3]$">nul&&goto M%aa goto ch :M1 rem 这里输入你想要执行的程序或命令如:echo 今天是 %date ping \/n 3 127.1>nul rem 或还有系列命令。。。goto ch :M2 rem 这里输入你想要执行的程序或命令如:echo 当前时间是 %time rem 或...

相似回答