【发布时间】:2016-11-10 12:36:36
【问题描述】:
我在某个目录的子文件夹中有一系列相同名称的文本文件
ac.txt 文件的结构如下:
---
some text
---
[lights]
---
some text
---
[GetEngineData]
---
some text
---
我想将字符串 [lights] 和 [GetEngineData] 之间的所有这些行(包括那些开始 [lights] 和结束 [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来做到这一点。我不确定你想将文件掩码放在括号内做什么。 -
您说您的文本文件“都命名相同”,那么为什么要查看每个扩展名为 .txt 的文件,而不仅仅是在 knownfilename.txt 中?
-
@Compo 它没有任何区别,因为子文件夹中没有任何其他文本文件以不同的名称命名,即 *.txt 或 ac.txt
-
@aschipfl 它是针对单个文件的,我正在为子文件夹中的所有 .txt 文件运行批处理,但仍然可以查看它,谢谢