标题: [文本处理] 批处理如何提取指定行之后的内容到新文本? [打印本页]
作者: wjx515 时间: 2012-8-6 20:04 标题: 批处理如何提取指定行之后的内容到新文本?
原文本如下
1994/11/25 15:30:00 18650 18700 18650 18690 64 0 18675 0.50
1994/11/28 15:30:00 18320 18500 18320 18465 111 0 18410 0.50
1994/11/29 15:30:00 18090 18090 18090 18090 22 0 18090 0.50
1994/11/30 15:30:00 18450 18450 18450 18450 12 0 18450 0.50
1994/12/01 15:30:00 18600 18650 18400 18450 133 0 18525 0.50
1994/12/02 15:30:00 18300 18380 18200 18380 141 0 18290 0.50
1994/12/05 15:30:00 18300 18300 18220 18300 84 0 18260 0.50
1994/12/06 15:30:00 18200 18280 18100 18250 120 0 18190 0.50
1994/12/07 15:30:00 18450 18490 18400 18480 131 0 18445 0.50
1994/12/08 15:30:00 18355 18400 18355 18360 26 0 18378 0.50
1994/12/09 15:30:00 18410 18420 18250 18350 138 0 18335 0.50
我想提取1994/11/30之后的内容到新文本,格式如下
1994/12/01 15:30:00 18600 18650 18400 18450 133 0 18525 0.50
1994/12/02 15:30:00 18300 18380 18200 18380 141 0 18290 0.50
1994/12/05 15:30:00 18300 18300 18220 18300 84 0 18260 0.50
1994/12/06 15:30:00 18200 18280 18100 18250 120 0 18190 0.50
1994/12/07 15:30:00 18450 18490 18400 18480 131 0 18445 0.50
1994/12/08 15:30:00 18355 18400 18355 18360 26 0 18378 0.50
1994/12/09 15:30:00 18410 18420 18250 18350 138 0 18335 0.50
作者: apang 时间: 2012-8-6 20:48
这样吗?- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- for /f "delims= " %%b in ("%%a") do (
- if defined flag echo %%a
- if "%%b"=="1994/11/30" set flag=1
- )
- ))>b.txt
复制代码
作者: wjx515 时间: 2012-8-6 20:58
如果我是要提取1994/11/30和1994/12/06之间的内容呢?就是1994/11/30之后的行到1994/12/06之前的行
作者: apang 时间: 2012-8-6 21:25
回复 3# wjx515
方法告诉你了,你就不会变通一下?
看球去咯。。。- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- for /f "delims= " %%b in ("%%a") do (
- if "%%b"=="1994/12/06" set flag=
- if defined flag echo %%a
- if "%%b"=="1994/11/30" set flag=1
- )
- ))>b.txt
复制代码
作者: 冷玉公子 时间: 2012-8-7 15:05
个人认为这个方法已经是最快的了,占位寻求更好的。- @Echo Off
-
- Set "StartDate=1994/11/30" // 开始日期
- Set "EndDate=1994/12/30" // 结束日期
-
- For /F "tokens=1-3,* delims=/ " %%A In (1.txt) Do (
- If %%A%%B%%C Geq %StartDate:/=% If %%A%%B%%C Leq %EndDate:/=% Echo %%A/%%B/%%C %%D
- )
- Pause>Nul
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |