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

[网络连接] [己解决]批处理读取ip批量ping

本帖最后由 keshun 于 2011-6-25 21:38 编辑

请教高手,批处理自动读取a.txt的IP进行ping,对能ping通的IP输出到b.txt

a.txt内容
202.175.3.8
202.96.199.133
61.128.128.68
202.101.115.55
202.100.64.68
202.96.128.86
202.103.224.68
202.98.192.67
202.100.192.68
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

楼主首先可以讲一下你这下做的意图何在吗?
***共同提高***

TOP

  1. for /f %%i in (a.txt) do (ping /n 1 %%i&&echo,%%i>>b.txt)
复制代码

TOP

本帖最后由 keshun 于 2011-6-25 20:18 编辑

我这边开始封路由,打不开网页,只能设置异地能ping通的DNS进行设置才能打网页。

网上一搜索,一大堆的DNS地址,用批量ping进行筛选

TOP

请教下,能不能把能ping的DNS,第一个ping值同时写入到b.txt

TOP

4# keshun


试试Google DNS
8.8.8.8
8.8.4.4

还有OpenDNS
208.67.222.222
208.67.220.220
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

楼主是黑客,哈哈,是黑阔

TOP

6# Batcher

刚ping过Google DNS,OpenDNS  延时300多还有丢包现象。

看来只能自己找ping值小的DNS,版主能否帮我编个代码,批量ping,把DNS与第一个ping值同时输出,方便我筛选。

TOP

8# keshun


参考:批处理自动获取最快速的QQ服务器
http://bbs.bathome.net/thread-4193-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in (a.txt) do (
  3.   for /f "tokens=5 delims==m" %%b in ('ping /n 1 %%a^|findstr "from"') do (
  4.     if not defined min (
  5.       set /a min=%%b
  6.       ) else (
  7.       if !min! gtr %%b set /a min=%%b&set "_!min!=%%a"
  8.     )
  9.   )
  10. )
  11. echo 经检测最适宜的dns为:!_%min%!
  12. pause>nul
复制代码
1

评分人数

***共同提高***

TOP

本帖最后由 zm900612 于 2011-6-25 23:05 编辑

来一个高效的,并行的进程数量可调节,不过其实不是很准:
  1. @echo off&setlocal enabledelayedexpansion>nul 2>nul 3>nul 4>nul
  2. set /a 并行=32,等待=1000
  3. echo %time% >con
  4. for /f "delims=" %%a in (a.txt) do (
  5.     del /f "%temp%\*.$p"
  6.     set /a "n+=1","num+=1">"%temp%\%%a.$p"
  7.     title !num!: %%a
  8.     if !n! geq %并行% (
  9.          set n=0
  10.          for %%b in ("%temp%\*.$p") do set /a n+=1
  11.          if !n! gtr 0 cmd /c exit
  12.     )
  13.     start /b cmd /c "ping>"%temp%\%%a.$p" /n 1 /w %等待% %%a&&echo>>b.txt %%a"
  14. )
  15. echo 全部ping完
  16. echo %time% >con
  17. pause&exit
复制代码

TOP

  1. @echo off
  2. (for /f %%i in (a.txt) do ping %%i /n 1 && echo %%i)>b.txt
  3. start b.txt
复制代码

TOP

返回列表