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

[文本处理] 批处理怎样得到完整的路径,而去掉不完整的呢

不好意思想向大家请教一个问题啊,我在做路由跟踪的时候,希望能将路由完整的那部分结果筛选出来,
自己弄了好久的DOS批处理,一直不成功,特此请教大家了,希望得到各位的帮助。
     问题内容:
     dos命令  tracert  网址域名  -d
     例如:tracert  0736.com  -d   结果如下:

Tracing route to 0736.com [42.121.67.135]
over a maximum of 30 hops:
  1    <1 ms    <1 ms    <1 ms  134.166.98.1
  2    <1 ms    <1 ms    <1 ms  134.166.247.29
  3     8 ms     5 ms     8 ms  220.168.210.25
  4     1 ms     1 ms     1 ms  222.241.63.165
  5     9 ms     9 ms    10 ms  61.137.0.93
  6    52 ms    23 ms    23 ms  202.97.69.225
  7    30 ms    27 ms    28 ms  220.191.135.106
  8    29 ms    29 ms    29 ms  183.136.160.154
  9    28 ms    28 ms    28 ms  42.120.244.194
10    23 ms    23 ms    23 ms  42.120.244.230
11     *        *        *     Request timed out.  (如出现这个字符串就丢弃整个这条跟踪记录)
12    29 ms    28 ms    28 ms  42.121.67.135
Trace complete.   

我通常是这么做 tracert  0736.com -d  >a.txt
我单位有几百个域名ip需要做路由跟踪,我希望弄个批处理,将路由跟踪记录完整的(结果中
不出现Request timed out)单独记录在一个文件里面。
如果跟踪结果有 “Request timed out.”  
那么 这个网址 的跟踪结果就丢弃,只要那些 路由跟踪完整的结果。
如下面的例子:
type   a.txt

Tracing route to www.bathome.net [117.25.131.86]
over a maximum of 30 hops:
  1    <1 ms    <1 ms    <1 ms  134.166.98.1
  2    <1 ms    <1 ms    <1 ms  134.166.247.29
  3    11 ms     5 ms     6 ms  220.168.210.25
  4     1 ms     3 ms     1 ms  222.241.63.165
  5    25 ms    23 ms    23 ms  202.97.71.134
  6    39 ms    32 ms    32 ms  222.76.220.6
  7    31 ms    31 ms    32 ms  222.76.220.118
  8    25 ms    25 ms    26 ms  222.76.221.34
  9    23 ms    23 ms    23 ms  117.25.131.86
Trace complete.     " (像这样完整路由就>a.txt)

这是一个域名跟踪的完整结果,如果当中出现 “Request timed out.”就表示
这个域名跟踪结果当中有丢失某一跳,那么这个跟踪结果就丢弃,a.txt里面只
收集完整路由的结果。
谢谢各位了,真诚希望得到您的帮助!

没做测试
  1. @echo off
  2. (for /f "delims=" %%a in ('more +8 "%~0"') do (
  3.     tracert %%a -d>$
  4.     find /i "Request timed out."<$>nul || type $
  5. ))>a.txt
  6. del $ & pause & exit/b
  7. ;;Target_Name_List;;
  8. www.bathome.net
  9. www.baidu.com
  10. 0736.com
复制代码

TOP

tracert  baidu.com  -d >a.txt
如果  findstr "Request timed out"  a.txt  为假
那么  b.txt=a.txt + b.txt


那位老师大侠,教教我啊~~~~~

TOP

terse 老师教我用 for ,我没弄好唉~

TOP

返回列表