中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 网络邻居连通测试.bat 上一主题 | 下一主题
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『楼 主』:  网络邻居连通测试.bat

网络邻居连通测试

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

  Quote:

  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 如果从其它程序中调用:本程序名 [IP地址前段] [起始数] [结束数]
  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 ]

2008-3-13 02:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『第 2 楼』:  

不知如何加上 CODE:  [Copy to clipboard] 选择功能,上传给下载
唉,上传了两次都选错包,上传系统帮手删掉那两个有问题的吧。

网络邻居连通测试

[ Last edited by yangzhiyi on 2008-3-13 at 03:23 AM ]

2008-3-13 03:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  

请把问题说清楚点,整个就搞不懂你要解决什么问题,一会这一会那的。

2008-3-13 09:25
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-3-13 09:25:
请把问题说清楚点,整个就搞不懂你要解决什么问题,一会这一会那的。

没问题啊

自动获取IP地址前段 帮忙优化一下
不 echo %ip% >nul 下for 出错,不知为何?

2008-3-13 13:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 5 楼』:  

你的 echo %ip% >nul 并不在 for  里面循环嘛
CODE:  [Copy to clipboard] 的使用: 在代码前加上 []code (注:code在中括号里,这样写是为了让你看得到),写完代码后加上 []/code (注:/code在中括号里).

2008-3-13 15:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『第 6 楼』:  



  Quote:
你的 echo %ip% >nul 并不在 for  里面循环嘛
CODE:  [Copy to clipboard] 的使用: 在代码前加上 []code (注:code在中括号里,这样写是为了让你看得到),写完代码后加上 []/code (注:/code在中括号里).

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

着色脚本后,已加上quote 如果再在前面加上code 代码变乱了,是不是把quote改成code ?
嘿嘿,刚试了下真是把quote改成code
[ Last edited by yangzhiyi on 2008-3-13 at 09:42 PM ]

2008-3-13 21:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: