编写批处理脚本。 如何validation“3”NUMERIC数字是由用户用“/ p”提示符input的?
提示给用户:
SET /P SITEID=ENTER SITE # (ie 001 - MUST BE 3 DIGITS):
我需要validation3位数已经input,如果好继续脚本。 如果不好再提示用户给我select的消息。
@echo off setlocal set "Input=" :Prompt set /p "Input=ENTER SITE # (ie 001 - MUST BE 3 DIGITS): " if not defined Input goto Prompt set "Input=%Input:"=%" for /f "delims=0123456789" %%A in ("%Input%") do goto Prompt for /f "tokens=1* delims=0" %%A in ("10%Input%") do set "Input=%%B" if %Input%0 geq 10000 goto Prompt set "Input=000%Input%" set "Input=%Input:~-3%" echo Success = %Input% pause endlocal exit /b 0
脚本说明:
更新:
:loop SET /P "SITEID=ENTER SITE # (ie 001 - MUST BE 3 DIGITS):" echo("%SITEID:"= %"|findstr /rbe /c:"""[0-9][0-9][0-9]""" >nul || ( echo FAIL & goto loop )
它使用%SITEID%
变量,删除引号(如果存在),并将数据发送到findstr
以对正则表达式( /r
开关)进行测试:在数据开始( /b
开关)初始引号(来自echo
命令)字符,关闭引号(来自echo
命令)和字符串结尾( /e
开关)。 如果findstr
没有找到匹配,则设置errorlevel, ||
之后的代码 被执行,打印一条消息到控制台返回:loop
标签再次询问。