楼 主
如果将文本里的指定信息提取出来?
发表于 2008-04-29 12:33 · 中国 广东 深圳 宝安区 电信
初级用户
★
积分 44 发帖 20 注册 2008-04-24 10:38 UID 116792 性别 男
状态 离线
用命令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 楼
发表于 2008-04-29 12:47 · 中国 浙江 杭州 联通
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 UID 99469 性别 男
状态 离线
@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /i "host address"') do (
call,set str=%%str%%%%i
)
echo %str%
pause
第 3 楼
发表于 2008-04-29 13:07 · 中国 广东 深圳 宝安区 电信
初级用户
★
积分 44 发帖 20 注册 2008-04-24 10:38 UID 116792 性别 男
状态 离线
非常感谢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 楼
发表于 2008-04-29 15:59 · 中国 上海 上海地面通信息网络有限公司
中级用户
★★
积分 240 发帖 115 注册 2008-03-10 19:31 UID 112561 性别 男
状态 离线
abcd 介意详细解释一下for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /i "host address"') do (
call,set str=%%str%%%%i
)的意思。谢谢...
第 5 楼
发表于 2008-04-29 16:20 · 中国 浙江 杭州 联通
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 UID 99469 性别 男
状态 离线
就是从ipconfig的结果中find包含host和address的行,然后通过for截取冒号(:)后面的字符。
再把截取到的字符连接起来。
第 6 楼
发表于 2008-04-29 16:58 · 中国 广东 东莞 电信
新手上路
★
积分 16 发帖 8 注册 2006-12-07 00:46 UID 72764 性别 男
状态 离线
正想着如何实现呢。。没想到已经有现成的
谢谢。。
是否能自动叠加在同一文本内。。??
第 7 楼
发表于 2008-04-29 17:03 · 中国 浙江 杭州 联通
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 UID 99469 性别 男
状态 离线
第 8 楼
发表于 2008-04-29 18:48 · 中国 上海 上海地面通信息网络有限公司
中级用户
★★
积分 240 发帖 115 注册 2008-03-10 19:31 UID 112561 性别 男
状态 离线
for /f "delims=:" %%i 应该是截取冒号(:)前面的字符啊,为什么会能截取后面的啊?
第 9 楼
发表于 2008-04-29 19:14 · 中国 北京 华为云
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 UID 99469 性别 男
状态 离线
第 10 楼
发表于 2008-04-29 23:41 · 中国 江苏 南京 电信
新手上路
★
积分 14 发帖 7 注册 2008-04-29 22:21 UID 117324 性别 男
状态 离线
第 11 楼
发表于 2008-04-30 08:43 · 中国 广东 深圳 宝安区 电信
初级用户
★
积分 44 发帖 20 注册 2008-04-24 10:38 UID 116792 性别 男
状态 离线
第 12 楼
发表于 2008-04-30 10:38 · 中国 广东 东莞 电信
新手上路
★
积分 16 发帖 8 注册 2006-12-07 00:46 UID 72764 性别 男
状态 离线
修改下。。。:
@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 楼
发表于 2008-04-30 10:56 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 UID 73968 性别 男
状态 离线
:
@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
致精致简!
第 14 楼
发表于 2008-04-30 11:15 · 中国 上海 上海地面通信息网络有限公司
中级用户
★★
积分 240 发帖 115 注册 2008-03-10 19:31 UID 112561 性别 男
状态 离线
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 楼
发表于 2008-04-30 12:09 · 中国 广东 深圳 宝安区 电信
初级用户
★
积分 44 发帖 20 注册 2008-04-24 10:38 UID 116792 性别 男
状态 离线
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循环呢?
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正