notepad++原生合并仅支持已打开标签页且按顺序拼接;combine插件可自动处理混合编码;nppexec调用copy/b速度快但继承首文件编码;python script最灵活但需手动处理编码异常。

Notepad++内置“合并文件”功能只认已打开的标签页
Notepad++ 没有“选中多个文件→右键→合并”这种原生操作。所谓“合并文件”菜单项(文件 → 合并文件)只对当前窗口中**已打开且未关闭**的标签页生效,按从左到右顺序拼接,每段之间自动加一个空行——这个空行无法关闭,但可以手动删。
常见错误是拖入一堆文件后直接点菜单,结果只合并了前几个——因为后台加载慢,部分文件还没真正完成解析,标签页虽显示但内容为空;或者误点了 合并文件到当前文档(旧版残留项),导致内容覆盖而非追加。
- 必须先用
Ctrl+O多选打开,或拖入后等右下角状态栏全部显示编码才算就绪 - 标签页顺序 = 合并顺序,想控序就提前重命名成
01_开头.txt再批量打开 - 若某文件打开后右下角显示
ANSI,而其他是UTF-8,中文必乱码,得先点编码 → 转为 UTF-8并保存
Combine 插件能自动处理混合编码和 BOM
当小说、日志这类真实场景里混着 UTF-8 with BOM、GBK、ANSI 文件时,文件 → 合并文件 会直接失败或截断开头字节,而 Combine 插件能识别并转码,是最省心的方案。
它不改原始文件,输出固定为 UTF-8 without BOM,但默认仍按标签页顺序拼接,不是文件名顺序。
- 安装路径:
插件 → 插件管理器 → 搜索 Combine → 勾选安装 - 操作流程:全打开目标文件 →
插件 → Combine → Start→ 勾选所有标签页 →Combine→ 选路径保存 - 注意:插件不会帮你统一行尾符,如果源文件有的用
CRLF、有的用LF,合并后可能段落“粘连”,需提前用视图 → 显示符号 → 显示所有字符检查
NppExec 执行 copy /b 适合几十个文件但编码继承第一个
NppExec 是 Notepad++ 自带最轻量的脚本扩展,适合要合并几十个文件,或需要简单控制路径的场景。它调用的是 Windows 原生命令 copy /b,速度快,但编码完全继承第一个被读取的文件——如果第一个是 GBK,后面 UTF-8 文件就会乱码。
命令示例:cd $(CURRENT_DIRECTORY) & cmd /c "copy /b *.txt merged.txt",生成的 merged.txt 就在当前目录。
- 必须确保所有源文件编码一致,否则乱码或内容截断(尤其带 BOM 的 UTF-8)
-
copy /b不加任何分隔符,前后文件内容直接“焊”在一起,需提前在每个文件末尾手动加换行 - 路径含空格时容易报错,建议把文件移到无空格路径下再执行
Python Script 插件写脚本能跳过空文件、加标题、统一换行
当你需要逻辑判断(比如跳过 0 字节文件)、插入分隔标识(如 --- 第一章.txt ---)、强制统一 UTF-8 编码和 LF 换行符时,Python Script 插件是唯一可控方案。
脚本里 encoding="utf-8" 必须显式声明,否则 Windows 默认用 cp1252 读取,中文照样变乱码。
- 安装插件后,
Plugins → Python Script → New script,存为merge_txt.py - 关键代码片段:
with open(f, "r", encoding="utf-8") as infile:和with open("merged.txt", "w", encoding="utf-8") as outfile: - 行尾符统一靠
outfile.write("\n\n")控制,而不是依赖源文件,避免粘连
真正麻烦的不是写几行代码,而是每次合并前得确认所有源文件是否真能被 Python 正确 decode——比如某些 GBK 文件里夹着 UTF-8 字节,脚本会直接抛 UnicodeDecodeError 报错,得先人工清理或加异常捕获。











