1

我需要在用户输入值时进行验证,他应该只输入数值,但用户将以以下格式输入值

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

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

有效的例子是5.1.2.3

无效的例子是5.2.A.3

4

1 回答 1

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这首先通过分隔符 ( )将 Build 字符串解析为四个单独的值 ( ),?/.,并检查每个值是否仅由数字 ( 0-9) 组成。

于 2013-02-26T16:03:39.643 回答