标题: 关于提取文本内容(新手求助)~~
[打印本页]
作者: rtsp0815
时间: 2009-2-19 13:41
标题: 关于提取文本内容(新手求助)~~
如有以下文本内容:
dn:1
----------------------------
name:y
type:6x17 port:36
lantx:3 host 3 1 1 3
----------------------------
dn:2
----------------------------
name:undef
type:undef
----------------------------
dn:3
----------------------------
name:y
tyep:6x17 port:29
lantx:3 host 3 2 1 4
-----------------------------
怎么能得到以下输出:
dn:1 3 1 1 3
dn:3 3 2 1 4
请高手指教,不胜感激
作者: rtsp0815
时间: 2009-2-19 13:42
作者: moniuming
时间: 2009-2-19 14:23
@echo off
Setlocal Enabledelayedexpansion
for /f "tokens=1,2,*" %%i in ('more +13^<%~fs0') do (
set var=%%i
if "!var:~,2!"=="dn" (
set str=%%i
) else (
if "!var:~,5!"=="lantx" (
echo !str! %%k
)
)
)
pause&goto :eof
dn:1
----------------------------
name:y
type:6x17 port:36
lantx:3 host 3 1 1 3
----------------------------
dn:2
----------------------------
name:undef
type:undef
----------------------------
dn:3
----------------------------
name:y
tyep:6x17 port:29
lantx:3 host 3 2 1 4
-----------------------------
作者: rtsp0815
时间: 2009-2-19 15:09
楼上的我测试过,能行,但是我是想从这个文件中提取出来另外生成一个文件
作者: rtsp0815
时间: 2009-2-19 15:11
相当于文件1.txt里面是以下内容:
dn:1
----------------------------
name:y
type:6x17 port:36
lantx:3 host 3 1 1 3
----------------------------
dn:2
----------------------------
name:undef
type:undef
----------------------------
dn:3
----------------------------
name:y
tyep:6x17 port:29
lantx:3 host 3 2 1 4
-----------------------------
处理后的文件2.txt内容为:
dn:1 3 1 1 3
dn:3 3 2 1 4
作者: tireless
时间: 2009-2-19 15:32
@echo off
setlocal enabledelayedexpansion
(
for /f "eol=- tokens=1,2,* delims=t" %%a in (1.txt) do (
if "%%a" lss "e" (
set dn=%%a
) else (
if "%%a" lss "m" echo !dn!%%c
)
)
)>2.txt
[
Last edited by tireless on 2009-2-19 at 15:37 ]
作者: moniuming
时间: 2009-2-19 15:32
其实自己改一改就行了...
@echo off
type nul>2.txt
Setlocal Enabledelayedexpansion
for /f "tokens=1,2,*" %%i in ('type 1.txt') do (
set var=%%i
if "!var:~,2!"=="dn" (
set str=%%i
) else (
if "!var:~,5!"=="lantx" (
echo !str! %%k
)
)
)>>2.txt
start 2.txt
作者: rtsp0815
时间: 2009-2-22 16:57
作者: rtsp0815
时间: 2009-2-22 16:59
还有就是如果1.txt的内容变为:
dn:1
----------------------------
name:y
type:6x17 port:36
lantx at:3 host 3 1 1 3
lantx ut:std
----------------------------
dn:2
----------------------------
name:undef
type:undef
----------------------------
dn:3
----------------------------
name:y
tyep:6x17 port:29
lantx at:3 host 3 2 1 4
lantx ut:std
----------------------------
又该怎么处理呢?
谢谢~~
作者: HAT
时间: 2009-2-22 17:33
标题: Re 8楼
哪句不懂,就问哪句,有很多热心人会告诉你答案;如果全部不懂,建议先去学习基础教程,这样才能更快的掌握批处理。
作者: rtsp0815
时间: 2009-2-22 18:19
呵呵,不好意思,其实主要是这个if "!var:~,2!"=="dn" 不知道是什么意思
作者: HAT
时间: 2009-2-22 21:01
标题: Re 11楼
作者: rtsp0815
时间: 2009-2-22 22:25
作者: HAT
时间: 2009-2-22 22:39
标题: Re 13楼
如果有人帮你解决了问题,建议进行以下操作:
1、修改帖子标题,在标题最前面注明:[已结]
2、给正确回答问题者加分(你自己的积分不会减少)以示感谢,虽然大家来论坛是为了学习而不是为了积分,但加分聊表谢意总是或多或少能够让花费了时间和精力无私帮助你的人略感欣慰。
3、如果你是在别人的提示下自己写出了代码,请把自己的方法贴出来跟大家分享一下,也许他人可以帮你指出代码中的不足之处、告诉你如何提高执行效率等,有交流才能更快地进步。