Notepad++不支持一键导出所有打开文件路径,但可通过Document List面板多选后右键“Copy Full Path”批量复制,每行一个完整路径;未保存文件在v8.6+中显示为new 1等临时标识。

Notepad++ 本身不提供“一键导出所有打开文件路径”的菜单功能,但可以通过内置的“文档列表”面板 + 复制粘贴 + 小技巧快速完成,无需插件或脚本。
从文档列表面板手动复制路径(最稳、兼容性最好)
Notepad++ 的 Document List 面板(默认在侧边栏,若未显示可按 Ctrl+Alt+Shift+D 打开)会列出所有已打开文档,且支持右键 → Copy Full Path —— 但这个选项只对单个文件生效。批量的关键在于:它支持多选后统一复制。
- 确保
Document List面板已启用并可见 - 按住
Ctrl键,逐个点击想导出的标签页(或直接拖动鼠标框选多个) - 右键任意一个被选中的条目 → 点击
Copy Full Path(注意不是Copy Filename) - 粘贴到记事本、Excel 或其他编辑器中,每行一个完整路径(如
C:\project\main.py)
⚠️ 容易踩的坑:Copy Full Path 在某些旧版 Notepad++(如 v7.9 之前)中对未保存文件返回空或仅文件名;建议升级到 v8.6+,新版对无名文档会显示 new 1、new 2 并附带临时路径提示。
用 Python 脚本调用 Notepad++ 的 NPP_SENDMSG(进阶,适合自动化)
Notepad++ 支持通过 Windows 消息机制(NPPM_GETCURRENTSCINTILLA 等)被外部程序读取当前文档信息,但官方未公开完整 API 文档。实际可行的是利用其内置的 Python Script 插件(需手动安装):
- 安装插件:Plugins → Plugin Manager → 勾选
Python Script→ 重启 - Plugins → Python Script → New Script,新建脚本,写入以下内容:
import notepad
for i in range(notepad.getNbTab()):
path = notepad.getNthFilename(i)
if path:
notepad.messageBox(path)
else:
notepad.messageBox("[unsaved] tab " + str(i))
运行后会弹窗逐个显示路径 —— 这只是验证逻辑;真正导出需改用 notepad.write() 写入新标签页,或用 console.write() 输出到控制台再复制。该方式适合已有 Python Script 插件、且需集成进工作流的用户。
⚠️ 注意:Python Script 插件不随 Notepad++ 自带,v8.x 后需单独下载适配版本(如 PythonScript_2.0.10.0_x64.zip),否则加载失败报错 Failed to load plugin。
用命令行 + PowerShell 快速抓取(适用于已知文件夹范围)
如果你其实只需要“当前打开的所有文件所属目录下的全部文件清单”,而非严格意义上的“Notepad++ 打开列表”,那更简单:Notepad++ 的窗口标题栏会包含当前激活文件名(Windows 任务栏也能看到),但无法直接提取。折中方案是——利用 Windows 的 tasklist 和 Get-Process 无法获取文档路径,所以这条路走不通。真正可用的是:在 Notepad++ 中全选所有标签页 → 右键 → Open Containing Folder(仅限已保存文件),然后手动在资源管理器中 Ctrl+A → Shift+RightClick → Copy as path。
- 此法不依赖 Notepad++ 功能,但要求所有文件都已保存且路径集中
- 若文件分散在不同盘符/目录,仍得回到
Document List多选复制 - PowerShell 无法跨进程读取 Notepad++ 的标签页内存,所谓“自动获取”脚本基本是伪造或依赖第三方钩子,稳定性差,不推荐生产环境使用
最常被忽略的一点:Notepad++ 的“恢复上次会话”功能(设置 → 备份 → Remember current session for next launch)开启后,重启时自动重载的文件也会出现在 Document List 中——这意味着你导出的清单可能包含你没主动打开、但上次留下的文件。检查前先确认是否需要过滤掉这些“历史残留”。

















