中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如果将文本里的指定信息提取出来?
<<   [1] [2]  >>   >
作者:
标题: 如果将文本里的指定信息提取出来? 上一主题 | 下一主题
worldopener
初级用户





积分 44
发帖 20
注册 2008-4-24
状态 离线
『楼 主』:  如果将文本里的指定信息提取出来?

用命令ipconfig /all >>ip.txt 可以将IP信息输出到文件,如: Windows IP Configuration Host Name . . . . . . . . . . . . : owq Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter 本地连接: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek RTL8169/8110 Family Gigabit Ethernet NIC Physical Address. . . . . . . . . : 00-1B-FC-C0-2B-86 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.2.234 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.2.200 DNS Servers . . . . . . . . . . . : 202.96.134.133 我只想把里面的用户(owq)、IP(192.168.2.234)和mac地址(00-1B-FC-C0-2B-86)提取出来,输出到另外一个文本ipinfo.txt里,并按照如下的方式排列(中间用Tab键或空格分隔): owq 192.168.2.233 00-1B-FC-C0-2B-86 请各位高手指教一下,不胜感激!! [ Last edited by worldopener on 2008-4-29 at 12:35 PM ]


2008-4-29 12:33
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 2 楼』:  

@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /i "host address"') do (
  call,set str=%%str%%%%i
)
echo %str%
pause


   此帖被 +1 点积分    点击查看详情   
评分人:【 worldopener 分数: +1  时间:2008-4-29 13:23


2008-4-29 12:47
查看资料  发短消息  网志  OICQ (470237592)  编辑帖子  回复  引用回复
worldopener
初级用户





积分 44
发帖 20
注册 2008-4-24
状态 离线
『第 3 楼』:  

非常感谢abcd的指导,受益匪浅啊! 如果我有很多个这样的文本,如: A.txt Windows IP Configuration Host Name . . . . . . . . . . . . :S1 Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter 本地连接: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek RTL8169/8110 Family Gigabit Ethernet NIC Physical Address. . . . . . . . . : 00-1B-FC-C0-2B-86 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.2.234 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.2.200 DNS Servers . . . . . . . . . . . : 202.96.134.133 B.txt Windows IP Configuration Host Name . . . . . . . . . . . . :S2 Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter 本地连接: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek RTL8169/8110 Family Gigabit Ethernet NIC Physical Address. . . . . . . . . : 00-1B-FC-C0-2C-96 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.2.235 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.2.200 DNS Servers . . . . . . . . . . . : 202.96.134.133 想把每个文本里的用户、IP和mac地址一一提取出来,输出到另外一个文本ipinfo.txt里,格式如下: S1 192.168.2.234 00-1B-FC-C0-2B-86 S2 192.168.2.235 00-1B-FC-C0-2C-96 那又应该如何写代码呢? [ Last edited by worldopener on 2008-4-30 at 08:41 AM ]


2008-4-29 13:07
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
terrytong
中级用户





积分 240
发帖 115
注册 2008-3-10
状态 离线
『第 4 楼』:  

abcd 介意详细解释一下for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /i "host address"') do ( call,set str=%%str%%%%i )的意思。谢谢...


2008-4-29 15:59
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 5 楼』:  

就是从ipconfig的结果中find包含host和address的行,然后通过for截取冒号(:)后面的字符。 再把截取到的字符连接起来。


2008-4-29 16:20
查看资料  发短消息  网志  OICQ (470237592)  编辑帖子  回复  引用回复
jfm034
新手上路





积分 16
发帖 8
注册 2006-12-7
状态 离线
『第 6 楼』:  

正想着如何实现呢。。没想到已经有现成的 谢谢。。 是否能自动叠加在同一文本内。。??


2008-4-29 16:58
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 7 楼』:  

echo .......>>test.txt


2008-4-29 17:03
查看资料  发短消息  网志  OICQ (470237592)  编辑帖子  回复  引用回复
terrytong
中级用户





积分 240
发帖 115
注册 2008-3-10
状态 离线
『第 8 楼』:  

for /f "delims=:" %%i 应该是截取冒号(:)前面的字符啊,为什么会能截取后面的啊?


2008-4-29 18:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 9 楼』:  

tokens=2


2008-4-29 19:14
查看资料  发短消息  网志  OICQ (470237592)  编辑帖子  回复  引用回复
xvzheng
新手上路





积分 14
发帖 7
注册 2008-4-29
状态 离线
『第 10 楼』:  

你实在是太好了。我喜欢这样的批处理


2008-4-29 23:41
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
worldopener
初级用户





积分 44
发帖 20
注册 2008-4-24
状态 离线
『第 11 楼』:  

如果是从多个文本里提取信息应怎么写代码呢?


2008-4-30 08:43
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
jfm034
新手上路





积分 16
发帖 8
注册 2006-12-7
状态 离线
『第 12 楼』:  

修改下。。。: @echo off for /f "tokens=2 delims=:" %%i in ('findstr /i "host description address gateway dns" ip.txt') do ( call,set str=%%str%%%%i ) echo %str%>>test.txt pause 本人刚学这个。。只能修改为从特定的文件中取相应的信息。。 还不会用循环处理。。 有待高手提示。。。


2008-4-30 10:38
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 13 楼』:  

:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=3 delims=:" %%i in ('findstr /i "host address" *.txt') do (
   set /a m+=1
   set /p=%%i<nul
   if !m! equ 3 set m=0&echo.
)
pause


   此帖被 +1 点积分    点击查看详情   
评分人:【 worldopener 分数: +1  时间:2008-4-30 13:58




致精致简!
2008-4-30 10:56
查看资料  发短消息  网志   编辑帖子  回复  引用回复
terrytong
中级用户





积分 240
发帖 115
注册 2008-3-10
状态 离线
『第 14 楼』:  

for /f "tokens=2" %%i in ('ipconfig /all^|findstr /i "host address"') 会显示 NameAddress.Adress. for /f "delims=:" %%i in ('ipconfig /all^|findstr /i "host address"')会显示 Host Name . . . . . . . . . . . . Physical Address. . . . . . . . . IP Address. . . . . . . . . . . . for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /i "host address"')怎么能显示owq 192.168.2.233 00-1B-FC-C0-2B-86 呢? 还是不太懂啊?


2008-4-30 11:15
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
worldopener
初级用户





积分 44
发帖 20
注册 2008-4-24
状态 离线
『第 15 楼』:  

Originally posted by abcd at 2008-4-30 10:51 AM: 多个文本的话,再在for外层加个for来读取文件名,再把文件名传递给内层for [ Last edited by abcd on 2008-4-30 at 10:53 AM ]
请问怎么加外层for循环呢?


2008-4-30 12:09
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: