将多个文件合并为一个文件,命令行中每个文件的内容之间用换行符分隔

将多个文件合并为一个文件,命令行中每个文件的内容之间用换行符分隔

例如,我有 2 个文件,内容如下

测试.txt

1

测试2.txt

2

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

type *.txt > merged.txt

然而,这将导致文件的内容12中没有换行符,我听说 type 命令应该这样做

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

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

答案1

视窗,可以使用以下命令:

type test1.txt > merged.txt && echo. >> merged.txt && type test2.txt >> merged.txt

我将解释每个部分:

  1. 输入 test1.txt > merged.txt- 此命令创建一个新副本(注意單身 >)名为 test1.txt 的文件,其名称为合并.txt
  2. 回声。>>合并.txt- 此命令附加(注意双 >>) A新队合并文件
  3. 输入 test2.txt >> merged.txt- 此命令将第二个文件附加到合并.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)

我将解释每个部分:

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

答案2

由于 type 是 MS DOS 命令,因此您正在 Windows 上工作。我一直使用 copy

copy /a test.txt + test2.txt 3.txt

/a告诉它它们是 ASCII 文件。

前两个是来源地,最后一个名字是目的地。

如果你的文件中含有换行符,它将被复制。它不会自行生成字符。

相关内容