[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 2# 老刘1号

第一种,如果输入负数呢,如 -47个数字
第二种,如果有空格呢,如 a  48个数字  b

TOP

批处理实现对数字的限制

用 set /p number=请输入48位数字数字中间无空格


如果变量number有其他字符输出“输入错误!请重新输入!”
如果变量number不够48位输出“输入错误!请重新输入!”
怎么用代码实现
1

评分人数

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p "a=请输入48位数字: 注:如果闪退则是包含特殊字符或是超限字符:
  3. if defined a (
  4. set "#=!a!"
  5. (for /l %%n in (0,1,9)do set "#=%%n!#!"&&set "#=!#:%%n=!")>nul 2>nul
  6. if defined # (
  7.   echo,非纯数字
  8. )else (
  9.   set "n=0"
  10.   for /l %%n in (0,1,8197)do if /i not "!a:~%%n,1!"=="" set/a "n=%%n+1"
  11.   if /i "!n!"=="48" (
  12.    echo,纯数字验证正确
  13.   )else (
  14.    echo,验证错误字符数:!n!
  15.   )
  16. )
  17. )else (
  18. echo,直接回车了
  19. )
复制代码
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

本帖最后由 老刘1号 于 2017-4-2 22:42 编辑

回复 3# 渣白


    CMD直接运行不了
存Bat
或者:
  1. Echo off&cls&setlocal   ENABLEDELAYEDEXPANSION
  2. for /l %%a in (1,1,48) do set pattern=!pattern![0-9]
  3. Set/pa=
  4. echo !a!|Findstr "^%pattern%$" >nul && Echo True || Echo False
  5. Pause
复制代码

TOP

回复 2# 老刘1号


    这个代码不是批处理?怎么在cmd里运行

TOP

本帖最后由 老刘1号 于 2017-4-2 22:23 编辑

2选1
另存为BAT
  1. '&start Wscript -e:vbscript "%~0"
  2. a=inputbox("")
  3. if len(a) = 48 and IsNumeric(a) then
  4. wscript.echo "True"
  5. else
  6. wscript.echo "False"
  7. end if
复制代码
  1. '&start Wscript -e:vbscript "%~0"
  2. Set a=New RegExp
  3. a.Pattern="\b\d{48}\b"
  4. MsgBox a.Test(InputBox(""))
复制代码

TOP

返回列表