如何创建批处理文件合并所有TXT文件且每个文件后添加换行?
批处理合并所有TXT文件并在每个文件后添加换行
嘿,我明白你的需求——用copy *.txt Final.txt合并文件确实方便,但它只是简单拼接内容,没法自动在每个文件结尾添加换行,尤其是当某个TXT文件本身结尾没有换行时,两个文件的内容会直接连在一起,可读性很差。
这里给你一个实用的批处理脚本,完美解决这个问题:
@echo off set "output=Final.txt" :: 先清空已存在的输出文件(避免重复追加内容) if exist "%output%" del "%output%" :: 遍历当前目录下所有TXT文件,排除输出文件本身 for %%f in (*.txt) do ( if not "%%f"=="%output%" ( :: 将当前文件内容追加到输出文件 type "%%f" >> "%output%" :: 添加一个空行作为分隔 echo. >> "%output%" ) ) echo 所有TXT文件已合并完成! pause
脚本关键点说明:
@echo off:关闭命令行的命令回显,让执行过程更整洁,只显示关键提示- 先检查并删除已存在的
Final.txt:防止多次运行脚本时内容重复追加 for %%f in (*.txt):遍历当前目录下所有后缀为.txt的文件if not "%%f"=="%output%":避免把输出文件Final.txt自己也合并进去,造成循环type "%%f" >> "%output%":将单个TXT文件的内容追加到输出文件末尾echo. >> "%output%":这是批处理中输出空行的常用方式,确保每个文件内容后都有换行分隔
小提示:如果你的部分原TXT文件本身结尾已经有换行,这个脚本会在文件后多一个空行。如果需要严格控制只在没有换行的文件后添加,可以增加判断逻辑,但会稍微复杂一些。如果你的需求不需要这么精细,上面的基础脚本完全够用。
内容的提问来源于stack exchange,提问作者m_alpha




