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

[其他] 判断输入的字符串是否为合法的IP地址

本帖最后由 pcl_test 于 2017-3-18 01:07 编辑

写了个判断输入信息是否属于IP地址的bat
思路比较简单,就是先判断格式,是否有3个“.”,然后判断每个段的值是否满足0-255这个数值的范围。
新司机上路,求老司机们多多关照,看看能否优化代码或者给点新的代码思路。
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p string=请输入字符串:
  3. set /a d=0
  4. set /a a=0
  5. if "%string%" equ "" (
  6. echo 输入为空
  7. goto :stop
  8. )
  9. if "%string%" neq "" goto :loop
  10. :loop
  11. if "!string:~%a%,1!" equ "." set /a d+=1
  12. if "!string:~%a%,1!" neq "" (
  13. set /a a+=1
  14. goto :loop)
  15. if %d%==3 (
  16. for /f "tokens=1-4 delims=." %%a in ("%string%") do (
  17. if %%a lss 0 goto :reason
  18. if %%a gtr 255 goto :reason
  19. if %%b lss 0 goto :reason
  20. if %%b gtr 255 goto :reason
  21. if %%c lss 0 goto :reason
  22. if %%c gtr 255 goto :reason
  23. if %%d lss 0 goto :reason
  24. if %%d gtr 255 goto :reason
  25. echo IP地址为:%string%
  26. goto :stop
  27. )
  28. ) else (
  29. echo 不属于IP地址格式
  30. goto :stop
  31. )
  32. :reason
  33. echo 输入信息中存在不为0-255的整数
  34. goto :stop
  35. :stop
  36. pause
复制代码

自己先沙发一下

TOP

回复 4# pcl_test

大神啊,一下子就帮我找出问题了。。。

TOP

返回列表