中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-13 00:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » ping -n 10 xx.xx.xx.xx里面需要的内容提取(求助) 查看 1,044 回复 7
楼 主 ping -n 10 xx.xx.xx.xx里面需要的内容提取(求助) 发表于 2009-12-26 13:55 ·  中国 上海 浦东新区 电信
初级用户
积分 62
发帖 30
注册 2007-12-01 17:51
18年会员
UID 104364
性别 男
状态 离线
大家好,我做一个网络测试,将一组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 ]
2 发表于 2009-12-29 11:56 ·  中国 湖南 湘潭 电信
初级用户
积分 23
发帖 19
注册 2009-07-10 07:01
17年会员
UID 149125
性别 男
状态 离线
@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
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
344611734 +2 2009-12-30 15:34
3 发表于 2009-12-29 23:48 ·  中国 广东 广州 华为云
初级用户
积分 33
发帖 20
注册 2008-10-12 19:14
17年会员
UID 128185
性别 男
状态 离线
2L也是显示10个TTL,我也想知道怎么显示一个...
4 发表于 2009-12-30 10:28 ·  中国 湖南 湘潭 电信
初级用户
积分 23
发帖 19
注册 2009-07-10 07:01
17年会员
UID 149125
性别 男
状态 离线
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 ]
5 发表于 2009-12-30 15:33 ·  中国 上海 徐汇区 联通
初级用户
积分 62
发帖 30
注册 2007-12-01 17:51
18年会员
UID 104364
性别 男
状态 离线
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 ]
6 发表于 2009-12-30 16:57 ·  中国 福建 厦门 电信
初级用户
积分 33
发帖 20
注册 2008-10-12 19:14
17年会员
UID 128185
性别 男
状态 离线
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 ]
7 发表于 2009-12-31 10:31 ·  中国 上海 徐汇区 联通
初级用户
积分 62
发帖 30
注册 2007-12-01 17:51
18年会员
UID 104364
性别 男
状态 离线
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,不过代码的时候我是跟你一样的。还是没有效果的。没有提示错误也没有出现所要的结果。你试试看!
8 发表于 2009-12-31 13:24 ·  中国 福建 厦门 电信
初级用户
积分 33
发帖 20
注册 2008-10-12 19:14
17年会员
UID 128185
性别 男
状态 离线
我试过是有的....
只不过我把123.txt放在同一路径而已...
论坛跳转: