中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » ping -n 10 xx.xx.xx.xx里面需要的内容提取(求助)
作者:
标题: ping -n 10 xx.xx.xx.xx里面需要的内容提取(求助) 上一主题 | 下一主题
344611734
初级用户





积分 62
发帖 30
注册 2007-12-1
状态 离线
『楼 主』:  ping -n 10 xx.xx.xx.xx里面需要的内容提取(求助)

大家好,我做一个网络测试,将一组ping IP的结果保存在d:\123.txt里面。要提取里面的几个参数。“TTL”,“丢失=”“平均=”这三个参数。保存在d:\result.txt里面。我用for /f "tokens=6,7* delims=" %i in (d:\123.txt) do @echo %i %j %k >>d:\result.txt(cmd下)能不能将TTL的值显示为一个。(显示的是10个)而且显示的也不是很理想。用find也不是很理想,恳求各位帮忙了。谢谢!

[ Last edited by 344611734 on 2009-12-26 at 13:57 ]

2009-12-26 13:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sysplay
初级用户





积分 23
发帖 19
注册 2009-7-10
状态 离线
『第 2 楼』:  

@echo off
for /f "tokens=4 delims==" %%i in ('find "TTL" d:\123.txt') do set TTL=%%i
for /f "tokens=4 delims==" %%i in ('find "Lost" d:\123.txt') do set Lost=%%i
for /f "tokens=4 delims==" %%i in ('find "Average" d:\123.txt') do set Average=%%i
echo TTL=%TTL%>>d:\result.txt
echo Lost=%Lost%>>d:\result.txt
echo Average=%Average%>>d:\result.txt

   此帖被 +2 点积分    点击查看详情   
评分人:【 344611734 分数: +2  时间:2009-12-30 15:34


2009-12-29 11:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zxh17173
初级用户





积分 33
发帖 20
注册 2008-10-12
状态 离线
『第 3 楼』:  

2L也是显示10个TTL,我也想知道怎么显示一个...

2009-12-29 23:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sysplay
初级用户





积分 23
发帖 19
注册 2009-7-10
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by zxh17173 at 2009-12-29 23:48:
2L也是显示10个TTL,我也想知道怎么显示一个...

显示的是一个TTL呀。批处理里面是将TTL变量赋值了十次,不是显示十次

[ Last edited by sysplay on 2009-12-30 at 10:29 ]

2009-12-30 10:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
344611734
初级用户





积分 62
发帖 30
注册 2007-12-1
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by sysplay at 2009-12-29 11:56 AM:
@echo off
for /f "tokens=4 delims==" %%i in ('find "TTL" d:\123.txt') do set TTL=%%i
for /f "tokens=4 delims==" %%i in ('find "Lost" d:\123.txt') do set Lo ...

谢了sysplay兄,你这个思路比我的好多了,思路很清晰,我刚学for不久还有很多不是很灵活的运用。

我试过用for /f "skip=11 tokens=6 delims= " %%i ('find /i "ttl" d:\123.txt') do echo >d:\result.txt能够实现。可是我用skip跳到lost那一行,用逗号作为分割符却不能实现。你能帮我实现一下吗?期待你的code!谢啦!~~~

[ Last edited by 344611734 on 2009-12-30 at 15:38 ]

2009-12-30 15:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zxh17173
初级用户





积分 33
发帖 20
注册 2008-10-12
状态 离线
『第 6 楼』:  


for /f "tokens=3 delims=," %%i in ('find /i "Lost" 123.txt') do echo %%i >>result.txt
这个试试...你原来的代码没有in...
二楼抱歉,没有仔细看...
5楼全文只有一个LOST,不必要skip,既然是用逗号的话 就直接算几个逗号就行了

[ Last edited by zxh17173 on 2009-12-30 at 17:13 ]

2009-12-30 16:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
344611734
初级用户





积分 62
发帖 30
注册 2007-12-1
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by zxh17173 at 2009-12-30 04:57 PM:
for /f "tokens=3 delims=," %%i in ('find /i "Lost" 123.txt') do echo %%i >>result.txt
这个试试...你原来的代码没有in...
二楼抱歉,没有仔细 ...

呵呵,发掉了in,不过代码的时候我是跟你一样的。还是没有效果的。没有提示错误也没有出现所要的结果。你试试看!

2009-12-31 10:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zxh17173
初级用户





积分 33
发帖 20
注册 2008-10-12
状态 离线
『第 8 楼』:  

我试过是有的....
只不过我把123.txt放在同一路径而已...

2009-12-31 13:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: