推荐用Notepad++的Combine插件一键合并,支持混合编码与BOM文件;次选PowerShell指定UTF-8编码合并;Python脚本最可控,可跳过空文件、加标题、统一换行符。

直接用插件最稳,别手动复制粘贴——容易漏文件、丢编码、跨标签页切错。
用 Combine 插件一键合并(推荐)
Notepad++ 自带的 Combine 插件专为这事设计,比手拖、脚本、命令行更贴合编辑器上下文,尤其适合混合编码(如 UTF-8 + GBK)或含 BOM 的小说/日志文件。
- 没装插件?菜单栏点「插件 → 插件管理器 → 显示插件管理器」,搜索
Combine并安装 - 全部目标文件用「文件 → 打开」一次性选中打开(会生成多个标签页)
- 菜单栏「插件 → Combine → Start」→ 勾选所有标签页 → 点「Combine」→ 选路径保存
- 注意:插件默认按标签页顺序合并,不是文件名顺序;想控序就提前在资源管理器里重命名成
01_开头.txt这类
用命令行合并(快但易踩编码坑)
Windows 下 copy *.txt merged.txt 看似一行解决,实际常出乱码或截断——因为 copy 默认按系统 ANSI 编码读写,遇到 UTF-8 without BOM 或带 BOM 的文件,开头几个字节可能被当控制符吞掉。
- 安全做法:先用 Notepad++ 打开每个源文件,看右下角状态栏显示的编码(如
UTF-8、ANSI),统一转成同一种再执行命令 - 如果必须命令行,改用 PowerShell:
Get-Content *.txt -Encoding UTF8 | Set-Content merged.txt -Encoding UTF8,显式指定编码 -
copy合并时不会加换行分隔,前后文件内容会“粘”在一起;需要分隔就先用 Notepad++ 批量在每文件末尾加空行,再合并
用 Python 脚本合并(可控性最强)
适合要加逻辑的场景,比如跳过空文件、过滤特定行、插入章节标题、自动去重。Notepad++ 内置的 Python Script 插件能直接调用,不用切终端。
- 装好
Python Script插件后,菜单「Plugins → Python Script → New script」,存为merge_txt.py - 写入以下内容(注意缩进用空格,不是 Tab):
import glob
import os
<p>read_files = glob.glob("*.txt")
with open("merged.txt", "w", encoding="utf-8") as outfile:
for f in read_files:
if os.path.getsize(f) == 0: # 跳过空文件
continue
outfile.write(f"--- {f} ---\n") # 插入文件名分隔
with open(f, "r", encoding="utf-8") as infile:
outfile.write(infile.read())
outfile.write("\n\n")- 运行它:「Plugins → Python Script → Scripts → merge_txt.py」
- 关键点:
encoding="utf-8"必须显式写,否则 Windows 上默认用cp1252,中文全变问号
为什么不用宏或录制操作?
Notepad++ 宏不记录「查找替换」里的「正则表达式」开关状态,也不记「全部替换」作用域(当前标签页 or 全部文档)。你录的时候勾了正则,回放时可能默认关着,结果什么都没替——这种失效没法 debug,只会在批量处理几十个文件后才发现漏了一半。
更麻烦的是:宏无法判断文件编码,遇到一个 GBK 文件混在 UTF-8 里,粘贴过去就是乱码,而且不会报错。真要自动化,宁可用上面的 Python 脚本,至少报错明确,UnicodeDecodeError 一眼知道哪行哪文件挂了。
真正容易被忽略的是换行符一致性——合并后如果要在 Linux 处理,得确保最终文件用 \n 结尾,而不是 Windows 默认的 \r\n。Combine 插件输出固定是 \r\n,脚本里用 print(..., end="\n") 或写入前 .replace("\r\n", "\n") 才能干净切换。

















