у меня есть ряд текстовых файлов каждый из которых назван тот же во вложенных папках определенной директорииBatch, чтобы получить строки между двумя строками в нескольких текстовых файлах в подпапках
ac.txt файлов имеют следующую структуру:
Я хочу получить все эти строки между строками [огни] и [GetEngineData] (включая те, которые запускают [огни] и заканчивают [линии GetEngineData]) в одном файле вывода с именем lights.txt с пустым пространством в между теми, которые поступают из каждого текстового файла.
Я кодируются следующим партия пока это не помогло до сих пор:
@ECHO OFF
for /r %%a in ('find /n "[lights]"^<(ac.txt) ') do set /a start=%%a
for /r %%a in ('find /n "[GeneralEngineData]"^<(ac.txt) ') do set /a end=%%a
(
for /r %%a in ('find /n /v ""^<(ac.txt) ') do (
IF %%a geq %start% IF %%f leq %end% ECHO(%%b
)
)>lights.txt
Вы не можете использовать 'FOR/R' для обработки вывода команды. Используйте 'FOR/F' для этого. Я не уверен, что вы пытаетесь сделать с помещением маски файла в круглые скобки. – Squashman
Возможный дубликат [Пакетный файл - найдите две строки, затем скопируйте все между этими линиями] (http://stackoverflow.com/questions/33638832/batch-file-find-two-lines-then-copy-everything-between-those -lines) – aschipfl
Вы заявили, что ваши текстовые файлы были «все названы одинаковыми», так почему вы смотрите в каждом файле с расширением .txt, а не только в файле knownfilename.txt? – Compo