批处理文件输入验证 - 确保用户输入了正确的格式

时间:2013-10-11 12:49:35

标签: validation batch-file scripting

我正在使用简单的批处理文件技术来获取用户输入:

@ECHO OFF
SET /P UserInput=Please Enter Version as X.X.X.X: 

你知道如何在X是数字的情况下验证X.X.X.X吗?

例如:

用户输入应为:1.0.0.23

谢谢! :)

2 个答案:

答案 0 :(得分:1)

这是一个相当简单的 - 如果存在除数字或句号之外的任何其他字符,那么它将循环返回另一个:

@ECHO OFF
:loop
set "UserInput="
SET /P "UserInput=Please Enter Version as X.X.X.X: "
for /f "delims=0987654321." %%a in ("%UserInput%") do echo Try again & goto :loop

答案 1 :(得分:1)

此答案会检查点分隔的4个数字字段。

:Prompt
SET /P "UserInput=Please Enter Version as X.X.X.X: "
FOR /F "TOKENS=1-4 DELIMS=." %%i IN ("%UserInput%") DO (
    SET /A n1=1*%%i
    SET /A n2=1*%%j
    SET /A n3=1*%%k
    SET /A n4=1*%%l
)
IF NOT "%UserInput%" == "%n1%.%n2%.%n3%.%n4%" GOTO :Prompt
ECHO %UserInput%

也可以添加负数验证。