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

回复 15楼 的帖子

如果不要求数字0-255,只要求是四组数字用“.”分隔的格式就确定为正确,那代码又该怎么编写。

TOP

回复 11楼 的帖子

还是超版厉害,一下就写好了
---学无止境---

TOP

回复 11楼 的帖子

感谢版主,随风,我测过11楼的代码,可以达到比较好的效果,但还存有一个问题,第四组数字不输入时“*.*.*.”也确定为正常

请输入ip: 12.11.2
输入错误
请输入ip: 12.11.2.
正确ip 12.11.2.
请按任意键继续. . .

[ 本帖最后由 keshun 于 2010-10-12 23:50 编辑 ]

TOP

将11楼代码中的set "s=[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" 改为
set "s=[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"

TOP

回复 8楼 的帖子

遗憾的是,你给出的条件不足以判断用户输入的IP是否合法。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 20楼 的帖子

是有点美中不足,但也勉强可以,也想请教高手帮忙优化下代码



  1. :输入
  2. :重设1
  3. set 标号=1
  4. set 格式输入=
  5. set /p 格式输入= 输入IP 地址:
  6. goto 识别格式
  7. :回设1
  8. echo.
  9. :重设2
  10. set 地址=%格式%
  11. set 标号=2
  12. set 格式输入=
  13. set /p 格式输入= 输入子网掩码:
  14. goto 识别格式
  15. :回设2
  16. echo.
  17. :重设3
  18. set 子网=%格式%
  19. set 标号=3
  20. set 格式输入=
  21. set /p 格式输入= 输入默认网关:
  22. goto 识别格式
  23. :回设3
  24. echo.
  25. :重设4
  26. set 网关=%格式%
  27. set 标号=4
  28. set 格式输入=
  29. set /p 格式输入= 输入首选DNS:
  30. goto 识别格式
  31. :回设4
  32. echo.
  33. :重设5
  34. set 首选=%格式%
  35. set 标号=5
  36. set 格式输入=
  37. set /p 格式输入= 输入备用DNS:
  38. goto 识别格式
  39. :回设5
  40. set 备用=%格式%
  41. goto 跳过
  42. :识别格式
  43. setlocal enabledelayedexpansion
  44. set 格式=%格式输入%
  45. set "s=[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"
  46. echo %格式%|findstr /be "%s%" >nul||set flag=a
  47. set n=%格式:.= %
  48. for %%a in (%n%) do (
  49.    set /a var=1%%a 2>nul
  50.    if !var! gtr 1255 set flag=a
  51. )
  52. if defined flag echo  错误,请重新输入&endlocal&goto 重设%标号%
  53. goto 回设%标号%
  54. :跳过
  55. cls
  56. echo                  ╭────────────────────╮
  57. echo                  │                                        │
  58. echo                  │     确  认  信  息  是  否  准  确     │
  59. echo                  │                                        │
  60. echo                  ╰────────────────────╯
  61. echo.
  62. echo.
  63. echo   【1】IP 地址: %地址%
  64. echo.
  65. echo   【2】子网掩码:%子网%
  66. echo.
  67. echo   【3】默认网关:%网关%
  68. echo.
  69. echo   【4】首选 DNS:%首选%
  70. echo.
  71. echo   【5】备用 DNS:%备用%
  72. echo.
  73. :确认
  74. echo.
  75. echo  确认无误:按[ y ]继续,确认有误:按[ n ]重设
  76. echo.
  77. set 确认=
  78. set /p 确认= 请输入确认结果:
  79. if /i "%确认%"=="y" goto 设置
  80. if /i "%确认%"=="n" goto 输入
  81. goto 确认
复制代码

[ 本帖最后由 keshun 于 2010-10-13 14:37 编辑 ]

TOP

  1. ::================= 判断IP地址是否正确 ========================
  2. :isIP addr
  3. set IP_addr=%~1&set "IP_ture=1"
  4. echo %IP_addr%|findstr "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$">nul 2>nul||(set "IP_ture=0"&goto:eof)
  5. for %%a in (%IP_addr:.=,%) do (if %%a gtr 255 set "IP_ture=0")
  6. goto:eof
  7. ::=========== end = 判断IP地址是否正确 =========================
复制代码

TOP

返回列表