Batch to get lines between two strings in multiple text files in subfolders -
i have series of text files each named same in sub-folders of directory
ac.txt files have following structure :
---  text  ---  [lights]  ---  text  ---  [getenginedata]  ---  text  ---   i want lines in between strings [lights] , [getenginedata] (including start [lights] , end [getenginedata] lines) in 1 single output file called lights.txt blank space in between coming each text file.
i coded following batch yet of no avail far :
@echo off  /r %%a in ('find /n "[lights]"^<(ac.txt) ') set /a start=%%a /r %%a in ('find /n "[generalenginedata]"^<(ac.txt) ') set /a end=%%a (     /r  %%a in ('find /n /v ""^<(ac.txt) ') (         if %%a geq %start% if %%f leq %end% echo(%%b     ) )>lights.txt      
here's way it. might not efficient seems job fine. code loops through subfolders , picks .txt files. parses each line of each file, marking beginning/end of each block using [lights] , [generalenginedata] tokens , outputs res.txt in same folder batch file stored.
@echo off  setlocal enabledelayedexpansion if exist res.txt del res.txt  set inblock=0 /r . %%a in (*.txt) (     set fname=%%a     /f "tokens=1* delims=]" %%b in ('type "!fname!" ^| find /n /v ""') (         if /i *%%c*==*[lights]* set inblock=1         if !inblock!==1 (             if *%%c*==** (echo.) else (echo %%c)             if /i *%%c*==*[getenginedata]* set inblock=0         )     )     echo.  ) >> res.txt set fname= set inblock= type res.txt      
Comments
Post a Comment