中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教DOS下从某一文件(不是文本文件)提取指定内容
« [1] [2] »
作者:
标题: 请教DOS下从某一文件(不是文本文件)提取指定内容 上一主题 | 下一主题
haize
新手上路





积分 10
发帖 9
注册 2007-12-12
状态 离线
『楼 主』:  请教DOS下从某一文件(不是文本文件)提取指定内容

VAAR          ?  $      季?   VABL4          0      s??   L o a d M a r k    VABL@          <      :粨盄   I P A T A g e n t M o d e       VABL       "   D      龉G1   I P A T N e t w o r k C o n f i g   H - 9 9 9                        1 9 2 . 1 6 8 . 9 . 4 2         2 5 5 . 2 5 5 . 2 5 5 . 0       1 9 2 . 1 6 8 . 0 . 2 2 2          VABLx       $   D   1   ?(Sx   I P A T R e g i s t e r C o n f i g                 1 9 2 . 1 6 8 . 2 2 2 . 2 2 2                                             


上面的内容是从硬盘某一扇区提取的,我需要其中的H - 9 9 9(机器名) 和 1 9 2 . 1 6 8 . 9 . 4 2(本机IP)这两部分的内容,并且机器不同这里的内容也不同的,并且从H开始,格式宽度不是固定的,因为有可能机器名是HL-999,IP是192.168.222.42,批处理有没有办法提取这两部分的内容并生成新的文本文件呢?谢谢各位高人!


谢谢各位高人的回答,现在遇到一个非常大的问题,就是用type显示这个文件内容时,只可以显示到VAAR          ?  $      季?   VABL4          0      s??   L o a d M a r k    VABL@       ,后面都无法显示了,所以批处理也无效了,估计是“”这个字符的原因,如何是好?


再次感谢yishanju和netbenton,在fr清除了无法的字符后,可以正常显示了。

[ Last edited by haize on 2009-3-12 at 14:23 ]

2009-3-12 07:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
haize
新手上路





积分 10
发帖 9
注册 2007-12-12
状态 离线
『第 2 楼』:  

忘了说明一下,内容里的机器名和IP都是有空格的,请注意一下!

2009-3-12 07:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 3 楼』:  

是不是字符间还有空格呀?其它内内容有没有固定的呢?比如回车换行。要不你把文件发上来看看



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-3-12 07:52
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
haize
新手上路





积分 10
发帖 9
注册 2007-12-12
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by netbenton at 2009-3-12 07:52 AM:
是不是字符间还有空格呀?其它内内容有没有固定的呢?比如回车换行。要不你把文件发上来看看

谢谢回复,我是论坛新手,正在研究如何发附件。

2009-3-12 08:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
haize
新手上路





积分 10
发帖 9
注册 2007-12-12
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by netbenton at 2009-3-12 07:52 AM:
是不是字符间还有空格呀?其它内内容有没有固定的呢?比如回车换行。要不你把文件发上来看看

不能上传附件
上面的内容大部分字符之间都有空格,用记事本打开文件时,只有一行。我是全选复制后,粘贴到这里的。谢谢。

2009-3-12 08:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 6 楼』:  


@echo off&Setlocal Enabledelayedexpansion
for /f "delims=" %%a in (test.txt) do set "str=%%a"
set "str=!str:*I P A T N e t w o r k C o n f i g=!"
set "str=!str:  =,!"
set "str=!str: =!"
for /f "tokens=1-5 delims=," %%a in ('echo.!str!') do echo.%%a %%b %%c %%d %%e
pause
::test是源数据文件
::以上已经可以取第一个“I P A T N e t w o r k C o n f i g”后的内容,
::把第二for的令牌根据需要自己改改吧
;得到数据如下:
H-999 192.168.9.42 255.255.255.0 192.168.0.222 VABLx
[ Last edited by netbenton on 2009-3-12 at 18:35 ]



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-3-12 09:55
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 7 楼』:  

1360.rar] haize 一个扇区内容 327B 2009/03/13(Fri)03:49 000.rar  

这个是你上传的吧




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-3-12 10:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 8 楼』:  

机器名是不是都有H开头


IP地址是从多少到多少

详细说明机器名 IP 等等的规律都有助于解决问题

[ Last edited by yishanju on 2009-3-12 at 11:24 ]




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-3-12 11:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 9 楼』:  


@echo off
type 000.bin>name.txt
fr -rnnlic:"[^a-z.0-9\-]*" -t name.txt
fr -rnnlic:".*IPATNetworkConfig(H-[0-9][0-9][0-9])([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)255.*" -t:"机器名:\1 IP:\2" name.txt
start name.txt
假设机器名由H-加三位数字组成;IP地址后面紧跟着是掩码255.p这种格式

::先用fr -rnnlic:"[^a-z.0-9\-]*" -t name.txt 把不明空白字符清理掉
得到这样的内容“
VAARVABL40s4LoadMarkVABLIPATAgentModeVABLDG1IPATNetworkConfigH-999192.168.9.42255.255.255.0192.168.0.222VABLxD1SxIPATRegisterConfig192.168.222.222
fr -rnnlic:".*IPATNetworkConfig(H-[0-9][0-9][0-9])([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)255.*" -t:"机器名:\1 IP:\2" name.txt 把机器名IP之外的内容去掉

强大的文本正则查找替换FR 下载:http://baiy.cn/utils/fr/index.htm

[ Last edited by yishanju on 2009-3-12 at 12:46 ]




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-3-12 12:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 10 楼』:  

结果 ;
机器名:H-999 IP:192.168.9.42




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-3-12 12:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
haize
新手上路





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



  Quote:
Originally posted by yishanju at 2009-3-12 10:42 AM:
1360.rar] haize 一个扇区内容 327B 2009/03/13(Fri)03:49 000.rar  

这个是你上传的吧

是的,是我上传的。

2009-3-12 13:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
haize
新手上路





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



  Quote:
Originally posted by netbenton at 2009-3-12 09:55 AM:
[code]@echo off&Setlocal Enabledelayedexpansion
for /f "delims=" %%a in (test.txt) do set "str=%%a"
set "str=!str:*I P A T N e t w o r k C o n f i g=!"
set &quo ...

感谢您的回答。

2009-3-12 13:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
haize
新手上路





积分 10
发帖 9
注册 2007-12-12
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by yishanju at 2009-3-12 11:04 AM:
机器名是不是都有H开头


IP地址是从多少到多少

详细说明机器名 IP 等等的规律都有助于解决问题

[ Last edited by yishanju on 2009-3-12 at 11:24 ]

机器名不是固定的,所以机器名的长度也不固定。IP基本上是网吧常的网段

2009-3-12 13:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
haize
新手上路





积分 10
发帖 9
注册 2007-12-12
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by yishanju at 2009-3-12 12:31 PM:
[code]@echo off
type 000.bin>name.txt
fr -rnnlic:"[^a-z.0-9\-]*" -t name.txt
fr -rnnlic:".*IPATNetworkConfig(H-[0-9][0-9][0-9])([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)255.*" -t:&q ...

fr真的很强大,很感谢您的回答。我试试!

2009-3-12 13:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 15 楼』:  

那你得把规律总结描述出来,没有规律是很难处理的




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-3-12 14:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: