批处理判断用户输入格式
批处理如何判断用户输入格式,例如格式KKK1234-56(前三位为英文字母,中间四个数字,之后为符号“-”,最后两位为数字。)如果错误提示重新输入,批处理怎么写...
批处理如何判断用户输入格式,例如格式KKK1234-56(前三位为英文字母,中间四个数字,之后为符号“-”,最后两位为数字。)如果错误提示重新输入,批处理怎么写
展开
3个回答
2013-08-08
展开全部
好久没玩DOS命令了,写下代码熟悉下.主要利用set字符串截取和finstr命令.将输入字符分段判断.代码我都加了标注,简单测试了下代码,没发现问题.你试试..---------------------------------------------------------------------------@echo off
:loop
set /p "str=请输入:"::判断输入字符是否为10位
if "%str:~9,1%"=="" call :err
if not "%str:~10,1%"=="" call :err::判断前3位是否为纯字母
echo %str:~0,3%|findstr /be "[a-z]*" >nul || call :err::判断4567位是否为全数字
echo %str:~3,4%|findstr /be "[0-9]*" >nul || call :err::判断8位是否为"-"
if not "%str:~7,1%"=="-" call :err::判断最后两位是否为纯数字
echo %str:~-2%|findstr /be "[0-9]*" >nul || call :errecho ok!!!
pause & exit:err
cls & echo 输入格式有误,请重新输入. & goto loop---------------------------------------------------------------------------
:loop
set /p "str=请输入:"::判断输入字符是否为10位
if "%str:~9,1%"=="" call :err
if not "%str:~10,1%"=="" call :err::判断前3位是否为纯字母
echo %str:~0,3%|findstr /be "[a-z]*" >nul || call :err::判断4567位是否为全数字
echo %str:~3,4%|findstr /be "[0-9]*" >nul || call :err::判断8位是否为"-"
if not "%str:~7,1%"=="-" call :err::判断最后两位是否为纯数字
echo %str:~-2%|findstr /be "[0-9]*" >nul || call :errecho ok!!!
pause & exit:err
cls & echo 输入格式有误,请重新输入. & goto loop---------------------------------------------------------------------------
2013-08-08
展开全部
先判断第一个字符是不是字母,是就接着下一步,不是就提示错误;下一步判断第二个字符是不是字母,是就接着下一步,不是就提示错误;以此类推,直到最后一个字符!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-08
展开全部
这个很麻烦,批处理没有专门的命令来处理,只能通过自己写子程序来判断。建议使用字符串截取的方式来判断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询