合并多个文本文件内容并在批处理命令文件中跳过第一行

4
我想创建一个批处理文件来合并扩展名为“.mf”的文本文件。但是,每个文件的第一行都包含日期,我不希望在最终输出文件中出现,请建议如何在合并成一个大的文本文件时去掉每个文件的日期行。
我已经使用了以下命令来合并文本文件用于批处理文件。
copy *.mf big.one
ren big.one filename.mf

例子:

2013218;
a
b
c
d

-

2013218;
u
v
w
x
y
z

输出结果必须如下所示:
2013218;
a
b
c
d
u
v
w
x
y
z

排序顺序不重要。
1个回答

7
@echo off
del big.one 2> NUL
for %%f in (*.mf) do (
   if not exist big.one (
      copy "%%f" big.one
   ) else (
      for /F  "usebackq skip=1 delims=" %%a in ("%%f") do (
         echo %%a>> big.one
      )
   )
)
set /P fileDate=< big.one
ren big.one filename_%fileDate:~0,-1%.mf

此解决方案不会保留第二个文件中的空行;如果需要,可以修复此问题。


谢谢Aacini,它完美地运作了。我现在可以保存我每天所做的手动工作。关于上面创建的文件,我有另一个小问题。我想将文件保存为<filename>__<YYYYMMDD>.mf,其中日期和格式与文件第一行相同。 - Kam
我有一个类似的过程,需要合并许多扩展名为 .txt 的文件。但是这个命令不太好用。文件被正确地创建了,但输出文件没有扩展名“.txt”。 - Kam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接