中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 06:21
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » findstr判断数字
可打印版本  930 / 5
第1楼 wangbing111 发表于 2008-07-26 16:19
初级用户 发帖 16 积分 41
findstr判断数字
@echo off
set /p var=请输入:
echo %var%|findstr "^[0-9]*$">nul||echo illegal number
pause

为什么不起作用?
第2楼 obsolete 发表于 2008-07-26 18:47
初级用户 发帖 72 积分 192
这段代码工作得挺好嘛?哪里有问题了?

PS:
1. 确保之前没有设置过环境变量var,否则用户只输入回车时,var保留以前的值
2. %var%引用变量可能无法处理用户的“非法输入”,比如包含"的情况。试试使用延迟环境变量或
call,echo %%var%%|findstr "^*$">nul||echo illegal number

[ Last edited by obsolete on 2008-7-26 at 06:58 PM ]
第3楼 obsolete 发表于 2008-07-26 19:25
初级用户 发帖 72 积分 192
第4楼 obsolete 发表于 2008-07-26 19:48
初级用户 发帖 72 积分 192
第5楼 obsolete 发表于 2008-07-26 21:15
初级用户 发帖 72 积分 192
思路差不多



[ Last edited by obsolete on 2008-7-26 at 09:16 PM ]
第6楼 obsolete 发表于 2008-07-26 21:40
初级用户 发帖 72 积分 192
纠正一下,四楼的方法不可用,当输入包含一元算术运算符时结果不正确
比如!#

如果用于判断21亿左右内的非负整数,且除了0本身外不以0打头,改一下还能用


[ Last edited by obsolete on 2008-7-26 at 09:45 PM ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023