首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查批处理脚本中的参数(或变量)是否为数字

如何检查批处理脚本中的参数(或变量)是否为数字
EN

Stack Overflow用户
提问于 2013-07-11 10:54:58
回答 10查看 58.4K关注 0票数 22

我需要检查传递给Windows批处理文件的参数是否为数字值。对于变量来说,检查也能起作用,这将是一件很好的事情。

我发现了一个

答案

到类似的

问题

,其中

命令与正则表达式一起使用。

我确实尝试了这个解决方案,但它并不像我希望的那样工作(至少在Windows 7上是这样)。

我的测试场景如下:

代码语言:javascript
运行
复制
AA  # not a valid number
A1  # not a valid number
1A  # not a valid number

11  # a valid number
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-07-11 11:53:34

代码语言:javascript
运行
复制
SET "var="&for /f "delims=0123456789" %%i in ("%1") do set var=%%i
if defined var (echo %1 NOT numeric) else (echo %1 numeric)

替换

使用

视情况而定

票数 53
EN

Stack Overflow用户

发布于 2013-07-11 13:03:03

对于

(

测试前导零

):

代码语言:javascript
运行
复制
echo(%~1|findstr "^[-][1-9][0-9]*$ ^[1-9][0-9]*$ ^0$">nul&&echo numeric||echo not numeric
票数 15
EN

Stack Overflow用户

发布于 2013-07-11 11:05:53

你可以试试这个。例如,传递的变量是

等于

..。

代码语言:javascript
运行
复制
set /a varCheck=%var%
if %varCheck% == %var% (goto :confirmed) else (exit /B)
exit /B

:confirmed
:: You can use %var% here, and it should only be executed if it is numerical!

如果

等于例如

,那么它将设置

要成为

,而且因为

不等于

,则退出批处理。

(第3行上的出口是为了防止if语句出于某种原因决定不执行...XD。)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17584282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档