将多个文件合并为 1 个文件,并在命令行中每个文件的内容之间使用换行符

Seb*_*Byg 3 windows command-line cmd.exe

例如,我有 2 个包含内容的文件

测试.txt

1
Run Code Online (Sandbox Code Playgroud)

测试2.txt

2
Run Code Online (Sandbox Code Playgroud)

我想将这 2 个文件合并为一个文件。我在相关问题上看到建议使用

type *.txt > merged.txt
Run Code Online (Sandbox Code Playgroud)

但是这会导致文件的内容12没有换行符,我听说 type 命令应该这样做

编辑: 我通过修改路易斯的答案并为我想要合并的文件创建一个批处理文件和子文件夹来解决问题

@echo off
type nul > merged.txt
FOR /R .\files %%f IN (*) DO (type "%%f" >> merged.txt) && (echo. >> merged.txt)  
Run Code Online (Sandbox Code Playgroud)

Lui*_*ran 5

Windows中,您可以使用以下命令:

type test1.txt > merged.txt && echo. >> merged.txt && type test2.txt >> merged.txt
Run Code Online (Sandbox Code Playgroud)

我将解释每个部分:

  1. type test1.txt > merged.txt - 此命令创建名为 test1.txt 的文件的新副本(请注意单个 > ),其名称为merged.txt
  2. 回声。>> merged.txt - 此命令在合并文件中附加(注意双 >>换行符
  3. type test2.txt >> merged.txt - 此命令将第二个文件附加到merged.txt文件的末尾

如果您有多个可以用数字范围表示的文件,例如 test1.txt、test2.txt、...、test10.txt,您可以尝试以下替代方案:

type nul > merged.txt && FOR /L %G IN (1,1,10) DO (type test%G.txt >> merged.txt) && (echo. >> merged.txt)
Run Code Online (Sandbox Code Playgroud)

我将解释每个部分:

  1. 输入 nul > merged.txt - 创建一个名为 merged.txt 的空文件
  2. FOR /L %G IN (1,1,10) DO - 循环 1 到 10 之间的每个数字
  3. (type test%G.txt >> merged.txt) && (echo. >> merged.txt) - 第一部分读取文件并将其附加到 merged.txt 文件。第二部分完成后添加换行符。