标题: [文本处理] 批处理如何提取指定文本中两个特定行之间的内容到新的文本 [打印本页]
作者: wheat611 时间: 2013-9-4 09:14 标题: 批处理如何提取指定文本中两个特定行之间的内容到新的文本
本帖最后由 pcl_test 于 2016-9-7 15:24 编辑
批处理怎样提取出一个文件指定字符串以后的内容,复制到新文件里
查找一个文件a.txt,一旦遇到关键字INCLUDE,则将INCLUDE之后的,一直到第一个空行为止的全体字符提取出来,复制到新文件header.txt里面。
注意,每行的字符串之间都有空格或者tab,复制的时候要去掉每行的空格和最后的\。
例如a.txt是
……
……
INCLUDE := \
..\aa\include \
..\bb\include \
..\cc\include \
SCOUCE := \
……
……
则header.txt希望是
..\aa\include
..\bb\include
..\cc\include
作者: batman 时间: 2013-9-4 16:36
- @echo off&setlocal enabledelayedexpansion
- (for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
- set "str=%%b"
- if "%%b" equ "" set "flag="
- if defined flag (
- set "str=!str: =!"
- echo,!str:\=!
- )
- if "%%b" neq "" if "!str:INCLUDE=!" neq "!str!" set "flag=a"
- ))>header.txt
- start header.txt
复制代码
作者: wskwfkbdn 时间: 2013-9-4 20:25
回复 2# batman
排除不需要的字符行,再for截取,你看呢
作者: digger 时间: 2013-9-5 23:01
@echo off
for /f %%i in ('findstr "\include" 1.txt') do (
if %errorlevel% equ 1 (
echo %%i >nul
) else (
echo %%i
)
)>>2.txt
pause
作者: smallming 时间: 2017-7-20 21:19
如果txt中有很多的INCLUDE := 和 SCOUCE :=呢,并且我需要把它们之间的内容依次写进a.txt,b.txt,c.txt……
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |