在批处理脚本中对用户输入进行验证

时间:2013-02-26 13:55:55

标签: batch-file

当用户输入他应输入的值时,我需要进行验证 只有数字值,但用户将以下面的格式输入值

Echo Build Number in the Format 5.1.2.44
set /p Build="enter Build Number Please : "

如果他将值放在5.1.2.3中,那么他需要确定它是什么 numeric..he可以在值之间使用任何字符?/.,而不是 .(点)的

有效示例为5.1.2.3

无效的示例是5.2.A.3

1 个答案:

答案 0 :(得分:1)

以下是验证分隔符之间的每个值是否为数字的示例。

@echo off
set "xResult=valid"
for /f "tokens=1,2,3,4 delims=?/.," %%A in ("%Build%") do (
    for /f "tokens=1 delims=1234567890" %%n in ("%%A") do set "xResult=invalid"
    for /f "tokens=1 delims=1234567890" %%n in ("%%B") do set "xResult=invalid"
    for /f "tokens=1 delims=1234567890" %%n in ("%%C") do set "xResult=invalid"
    for /f "tokens=1 delims=1234567890" %%n in ("%%D") do set "xResult=invalid"
)
echo %xResult%

这首先通过分隔符(A-D)将构建字符串解析为四个单独的值(?/.,)并检查每个值是否仅由数字组成({{1} })。