![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 09:48 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如果将文本里的指定信息提取出来? |
| 可打印版本 1,982 / 25 |
| 第1楼 worldopener | 发表于 2008-04-29 12:33 |
| 初级用户 发帖 20 积分 44 | |
|
如果将文本里的指定信息提取出来? 用命令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 ] |
|
| 第2楼 abcd | 发表于 2008-04-29 12:47 |
| 银牌会员 发帖 739 积分 1,436 | |
| 第3楼 worldopener | 发表于 2008-04-29 13:07 |
| 初级用户 发帖 20 积分 44 | |
|
非常感谢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 ] |
|
| 第4楼 terrytong | 发表于 2008-04-29 15:59 |
| 中级用户 发帖 115 积分 240 | |
|
abcd 介意详细解释一下for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /i "host address"') do (
call,set str=%%str%%%%i )的意思。谢谢... |
|
| 第5楼 abcd | 发表于 2008-04-29 16:20 |
| 银牌会员 发帖 739 积分 1,436 | |
|
就是从ipconfig的结果中find包含host和address的行,然后通过for截取冒号(:)后面的字符。
再把截取到的字符连接起来。 |
|
| 第6楼 jfm034 | 发表于 2008-04-29 16:58 |
| 新手上路 发帖 8 积分 16 | |
|
正想着如何实现呢。。没想到已经有现成的
谢谢。。 是否能自动叠加在同一文本内。。?? |
|
| 第7楼 abcd | 发表于 2008-04-29 17:03 |
| 银牌会员 发帖 739 积分 1,436 | |
|
echo .......>>test.txt
|
|
| 第8楼 terrytong | 发表于 2008-04-29 18:48 |
| 中级用户 发帖 115 积分 240 | |
|
for /f "delims=:" %%i 应该是截取冒号(:)前面的字符啊,为什么会能截取后面的啊?
|
|
| 第9楼 abcd | 发表于 2008-04-29 19:14 |
| 银牌会员 发帖 739 积分 1,436 | |
|
tokens=2
|
|
| 第10楼 xvzheng | 发表于 2008-04-29 23:41 |
| 新手上路 发帖 7 积分 14 | |
|
你实在是太好了。我喜欢这样的批处理
|
|
| 第11楼 worldopener | 发表于 2008-04-30 08:43 |
| 初级用户 发帖 20 积分 44 | |
|
如果是从多个文本里提取信息应怎么写代码呢?
|
|
| 第12楼 jfm034 | 发表于 2008-04-30 10:38 |
| 新手上路 发帖 8 积分 16 | |
|
修改下。。。:
@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 本人刚学这个。。只能修改为从特定的文件中取相应的信息。。 还不会用循环处理。。 有待高手提示。。。 |
|
| 第13楼 26933062 | 发表于 2008-04-30 10:56 |
| 银牌会员 发帖 879 积分 2,268 | |
|
:
|
|
| 第14楼 terrytong | 发表于 2008-04-30 11:15 |
| 中级用户 发帖 115 积分 240 | |
|
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 呢? 还是不太懂啊? |
|
| 第15楼 worldopener | 发表于 2008-04-30 12:09 |
| 初级用户 发帖 20 积分 44 | |
Originally posted by abcd at 2008-4-30 10:51 AM: 请问怎么加外层for循环呢? |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |