[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. set/p n=输入一个数字:
  3. for /f "delims=1234567890" %%a in ("%n%@") do if %%a==@ (echo 纯数字) else echo 不是纯数字
  4. pause
复制代码
1

评分人数

TOP

原帖由 ejzhang 于 2009-7-1 21:42 发表

上面代码如果n是空的时候也会判断为数字,照下面这样写就不会了(注意红色部分)
for /f "delims=1234567890" %%a in ("@%n%@") do if %%a==@ (echo 纯数字) else echo 不是纯数字


看了一下发现有问题。前后加@或其他字符都不好使。 象 [email=n=@123]n=@123[/email] 123@,加两个@就更不行了。象1243awfasf 都会判为纯数字,但如果什么也不加,则不会执行do 后边语句, 所以修正如下:

  1. @echo off
  2. set/p n=输入一个数字:
  3. if not "%n%"=="" (
  4. for /f "delims=1234567890" %%a in ("%n%") do echo 不是纯数字&pause&goto :eof
  5. ) else echo 为空
  6. echo 纯数字
  7. pause
复制代码

[ 本帖最后由 inittab 于 2009-7-1 22:33 编辑 ]

TOP

返回列表