请教如何用批处理或vbs来获取文本文件里的一段非固定ip

文本文件名ip.txt,内容如下:正在Ping163.xdwscache.glb0.lxdns.com[175.43.124.200]具有32字节的数据:来自175.43... 文本文件名ip.txt,内容如下:

正在 Ping 163.xdwscache.glb0.lxdns.com [175.43.124.200] 具有 32 字节的数据:
来自 175.43.124.200 的回复: 字节=32 时间=142ms TTL=56
路由: 175.43.234.149
175.43.124.200 的 Ping 统计信息:
数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 142ms,最长 = 142ms,平均 = 142ms

需要一个批处理或vbs获取第3行里的“路由:”后面的ip地址,该ip地址因会覆盖变动,位数不固定,要如何才能准确获取变动以后的这个ip数字,并输出到另一个文本文件(例如1.txt)里呢?最好可以输出的文本文件里无空格,如果文件内容可以变成例如 IP=175.43.234.149 这样的形式最好。
展开
 我来答
jd08139
2013-10-29 · TA获得超过3733个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2823万
展开全部
@Echo Off&Setlocal Enabledelayedexpansion
For /f "tokens=1* delims=: " %%i in ('Type ip.txt^|Findstr "路由:"') do (Set j=%%j
Echo IP=!j! >>1.txt
)
Pause

生成格式为 IP=175.43.234.149

更多追问追答
追问
第2行不知道哪里的问题,系统win7,提示此时不应该有%%i  。如果去掉一个%,却提示”More?“要求输入。另外您这个是用type加find的命令显示出路由的当行,再用for命令来获取:后的变量,就是不知道为什么这个%%i无法定义成变量,还有findstr应该是要变成find吧,默认系统没有findstr的命令
追答
@Echo Off
For /f "tokens=1* delims=: " %%i in ('Type ip.txt^|Find "路由:"') do (
Echo IP=%%j >>1.txt
)
Pause

findstr有些系统没有这个文件或是被精简了.所以如果没有可以改为find.

伈雨_
2013-10-29 · TA获得超过299个赞
知道小有建树答主
回答量:233
采纳率:100%
帮助的人:89.7万
展开全部
dim fso,New_file,file,sp,sp_in
set fso=createobject("scripting.filesystemobject")
file="x:\ip.txt" '当前文件夹内就只写文件名也行
New_file="1.txt"
read=fso.opentextfile(file).readall
sp=split(read,vbcrlf)(2)
sp_in=mid(sp,instrrev(sp,":")+1)
fso.createtextfile(New_file).write trim(sp_in)
set fso=nothing

以上保存为vbs类型文件

追问
但是这个运行后,1.txt得到的不是路由后面的ip,而是变成了第一个冒号后面的 “字节=32 时间=142ms TTL=56”。
后发现修改此行sp=split(read,vbcrlf)(2) 后面的2改为3即可正常,不过,这个是否有办法在输出1.txt文件里追加个ip=的字符串,获得的ip追加在此后面,就是要变成文件内容是IP=175.43.234.149 这样呢?
追答
fso.createtextfile(New_file).write "ip="&trim(sp_in)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式