我需要在用户输入值时进行验证,他应该只输入数值,但用户将以以下格式输入值
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
我需要在用户输入值时进行验证,他应该只输入数值,但用户将以以下格式输入值
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
以下是如何验证分隔符之间的每个值是否为数字的示例。
@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
) 组成。