中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 19:02
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 网络邻居连通测试.bat
可打印版本  1,091 / 5
第1楼 yangzhiyi 发表于 2008-03-13 02:59
中级用户 发帖 123 积分 261
网络邻居连通测试.bat
网络邻居连通测试

今天看到一个贴在说类似的问题,修改了一下以前的发上来。
自动获取IP地址前段 帮忙优化一下
不 echo %ip% >nul 下for 出错,不知为何



  1. @echo off
  2. title 网络邻居连通测试

  3. ::自动获取IP地址前段
  4. for /f "tokens=2 delims=:" %%i in ('ipconfig^|find /i "IP Address"') do (set ip=%%i)
  5. set ip=%ip:~1%
  6. echo %ip% >nul
  7. for /F "usebackq tokens=2,3,4 delims=. " %%i in ('echo %ip%') do (set ip=%%i.%%j.%%k)

  8. ::set ip=192.168.1
  9. ::IP地址前段,如果手工设定则去掉上行前面的 ::
  10. set ip1=1
  11. ::起始数
  12. set ip2=10
  13. ::结束数
  14. set ip4=
  15. ::测试完成默认值,留空时不会按回车键太快
  16. set ip5=y
  17. ::清空原有记录默认值
  18. set ip6=n
  19. ::查看记录默认值
  20. set ip7=2
  21. ::回响请求消息的次数
  22. set ip8=200
  23. ::等待回响应答消息响应的时间(以微妙计)



  24. ::下面如你不理解不要更改

  25. if "%1"=="/?" goto op1
  26. if "%1"=="-?" goto op1
  27. if /i "%1"=="/h" goto op1
  28. if /i "%1"=="-h" goto op1
  29. if /i "%1"=="/help" goto op1
  30. if /i "%1"=="-help" goto op1
  31. if "%1"=="" goto op2
  32. if "%2"=="" goto op2
  33. if "%3"=="" goto op2
  34. set ip=%1
  35. set ip1=%2
  36. set ip2=%3
  37. goto op3

  38. :op1
  39. echo.
  40. echo 如果你经常维护局域网时,想在一台机中测试一下它能否连接到其它网内的机器时就用它吧,十几秒钟就搞定。
  41. echo.
  42. echo 如果从其它程序中调用:本程序名
  43. echo 例子:本程序名 192.168.0 1 10
  44. echo.
  45. echo.
  46. echo 如果你的机器太差那么 起始数到结束数 的范围别太大,否则机器可能会假死。
  47. echo yangzhiyi 作品 于 2008-3-13 日
  48. echo.
  49. pause >nul
  50. cls

  51. :op2
  52. echo 输入IP地址前段 默认为:%ip%
  53. set /p ip=输入:
  54. echo 输入起始数 默认为:%ip1%
  55. set /p ip1=输入:
  56. echo 输入结束数 默认为:%ip2%
  57. set /p ip2=输入:

  58. :op3
  59. rd /s /q "%temp%\iptest" 1>nul 2>nul
  60. md "%temp%\iptest" 1>nul 2>nul

  61. echo ;成功的地址 (%date% %time%)> "%temp%\iptest\okip.txt"
  62. echo ;失败的地址 (%date% %time%)> "%temp%\iptest\noip.txt"


  63. set ip3=%ip1%,1,%ip2%
  64. ::起始数,跳跃数,结束数 注意:不要随便更改此参数
  65. for /l %%a in (%ip3%) do start /min "网邻连通测试 ping %ip%.%%a" cmd /c "@mode con cols=43 lines=5 & echo 测试中,请等待。。。 & ping %ip%.%%a -n %ip7% -w %ip8% >nul&&echo %ip%.%%a>>"%temp%\iptest\okip_%%a.txt" || echo %ip%.%%a>>"%temp%\iptest\noip_%%a.txt""

  66. :op4

  67. cls
  68. echo 请在所有项目测试完后输入y键:
  69. set /p ip4=是否已完成:
  70. if /i not "%ip4%" == "y" goto op4

  71. for /l %%b in (%ip3%) do IF EXIST "%temp%\iptest\okip_%%b.txt" more "%temp%\iptest\okip_%%b.txt" >> "%temp%\iptest\okip.txt"
  72. for /l %%b in (%ip3%) do IF EXIST "%temp%\iptest\noip_%%b.txt" more "%temp%\iptest\noip_%%b.txt" >> "%temp%\iptest\noip.txt"


  73. cls

  74. IF EXIST okip.txt set /p ip5=是否清空原有记录(是为y):& goto op5
  75. IF EXIST noip.txt set /p ip5=是否清空原有记录(是为y)

  76. :op5
  77. if /i "%ip5%1" == "y1" (
  78. del /q /f okip.txt 2>nul 1>nul
  79. del /q /f noip.txt 2>nul 1>nul
  80. copy /y "%temp%\iptest\okip.txt" okip.txt 2>nul 1>nul
  81. copy /y "%temp%\iptest\noip.txt" noip.txt 2>nul 1>nul
  82. ) ELSE (
  83. more "%temp%\iptest\okip.txt" >> okip.txt
  84. more "%temp%\iptest\noip.txt" >> noip.txt
  85. )
  86. echo off

  87. cls
  88. echo.
  89. echo -------------------------------测试结果-------------------------------
  90. type "%temp%\iptest\okip.txt"
  91. echo.
  92. type "%temp%\iptest\noip.txt"
  93. echo.
  94. echo -------------------------------结果结束-------------------------------

  95. del /q /f "%temp%\iptest\*.*" 2>nul 1>nul
  96. rd /s /q "%temp%\iptest" 2>nul 1>nul

  97. IF EXIST okip.txt set /p ip6=是否查看记录(是为y)
  98. if /i "%ip6%1" == "y1" (
  99. IF EXIST noip.txt start noip.txt
  100. IF EXIST okip.txt start okip.txt
  101. )
志艺风云发表于: 2008-03-13 02:11


[ Last edited by yangzhiyi on 2008-3-13 at 03:20 AM ]
第2楼 yangzhiyi 发表于 2008-03-13 03:10
中级用户 发帖 123 积分 261
不知如何加上 CODE: 选择功能,上传给下载
唉,上传了两次都选错包,上传系统帮手删掉那两个有问题的吧。

网络邻居连通测试

[ Last edited by yangzhiyi on 2008-3-13 at 03:23 AM ]
第3楼 bat-zw 发表于 2008-03-13 09:25
金牌会员 发帖 1,276 积分 3,105
请把问题说清楚点,整个就搞不懂你要解决什么问题,一会这一会那的。
第4楼 yangzhiyi 发表于 2008-03-13 13:00
中级用户 发帖 123 积分 261
Originally posted by zw19750516 at 2008-3-13 09:25:
请把问题说清楚点,整个就搞不懂你要解决什么问题,一会这一会那的。


没问题啊

自动获取IP地址前段 帮忙优化一下
不 echo %ip% >nul 下for 出错,不知为何?
第5楼 moniuming 发表于 2008-03-13 15:07
银牌会员 发帖 574 积分 1,335 来自 广西
你的 echo %ip% >nul 并不在 for 里面循环嘛
CODE: [Copy to clipboard] 的使用: 在代码前加上 []code (注:code在中括号里,这样写是为了让你看得到),写完代码后加上 []/code (注:/code在中括号里).
第6楼 yangzhiyi 发表于 2008-03-13 21:34
中级用户 发帖 123 积分 261
你的 echo %ip% >nul 并不在 for 里面循环嘛
CODE: 的使用: 在代码前加上 code (注:code在中括号里,这样写是为了让你看得到),写完代码后加上 /code (注:/code在中括号里).


说的是第7行,如无第7行,第8行出错。

着色脚本后,已加上quote 如果再在前面加上code 代码变乱了,是不是把quote改成code ?


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