|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
『楼 主』:
关于提取文本内容(新手求助)~~
如有以下文本内容:
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
请高手指教,不胜感激
|
|
2009-2-19 13:41 |
|
|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
『第
2 楼』:
因需处理数据量较大,在线等待中。。。
|
|
2009-2-19 13:42 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
3 楼』:
@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
-----------------------------
|
|
2009-2-19 14:23 |
|
|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
『第
4 楼』:
楼上的我测试过,能行,但是我是想从这个文件中提取出来另外生成一个文件
|
|
2009-2-19 15:09 |
|
|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
『第
5 楼』:
相当于文件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
|
|
2009-2-19 15:11 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
6 楼』:
@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 ]
|
|
2009-2-19 15:32 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
7 楼』:
其实自己改一改就行了...
@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
|
|
2009-2-19 15:32 |
|
|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
『第
8 楼』:
请问有人能逐行解释一下上面的批命令吗?
|
|
2009-2-22 16:57 |
|
|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
『第
9 楼』:
还有就是如果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
----------------------------
又该怎么处理呢?
谢谢~~
|
|
2009-2-22 16:59 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
10 楼』:
Re 8楼
哪句不懂,就问哪句,有很多热心人会告诉你答案;如果全部不懂,建议先去学习基础教程,这样才能更快的掌握批处理。
|
|
|
2009-2-22 17:33 |
|
|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
『第
11 楼』:
呵呵,不好意思,其实主要是这个if "!var:~,2!"=="dn" 不知道是什么意思
|
|
2009-2-22 18:19 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2009-2-22 21:01 |
|
|
rtsp0815
新手上路
积分 8
发帖 8
注册 2009-2-18
状态 离线
|
|
2009-2-22 22:25 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
14 楼』:
Re 13楼
如果有人帮你解决了问题,建议进行以下操作:
1、修改帖子标题,在标题最前面注明:[已结]
2、给正确回答问题者加分(你自己的积分不会减少)以示感谢,虽然大家来论坛是为了学习而不是为了积分,但加分聊表谢意总是或多或少能够让花费了时间和精力无私帮助你的人略感欣慰。
3、如果你是在别人的提示下自己写出了代码,请把自己的方法贴出来跟大家分享一下,也许他人可以帮你指出代码中的不足之处、告诉你如何提高执行效率等,有交流才能更快地进步。
|
|
|
2009-2-22 22:39 |
|