批处理set/p命令如何让用户输入时,只能输入特定的值。如只能输1位数字,只能输数字,只能输1000以内的
展开全部
简单说,就是在它下面先判断(通常可用 if 命令),不满足的用goto 返回重新输入,如加上清屏,就好象被控制只能输入什么了(提醒一下用if 判断时容易犯的错是忽略输入为空,如首先用if 的判断式里不是加上引号的来判断,就容易出错)
很多项的时候,需要会用findstr命令可以简化代码,比如
echo %aa%|findstr "[^0-9]" >nul&&goto :r
表示 如果变量aa里含有非数字或为空就转到 :r 标签处
findstr 的使用相对比较复杂,得段时间才能得心就手
你可以再追问一项具体的需求,帮你写一个,没掌握findstr的用法是不容易自己更改正确的
很多项的时候,需要会用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 问我
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询