Notepad++ 无法真正对比两个文件夹,因其不支持目录遍历、哈希计算或路径存在性判断;Compare 插件仅比对已打开的两个标签页内容,且受分屏、未保存状态、中文路径等限制;文件名差异需用 PowerShell 生成清单后人工查看。

Compare 插件只认两个已打开的标签页
它没有目录扫描逻辑,不读取路径、不生成文件列表、不计算哈希、不判断文件是否存在。你看到的“左/右面板”只是 UI 错觉,底层仍是单文件对。
-
Plugins → Compare → Compare只作用于当前活动标签页 + 紧邻右侧标签页,中间不能有new 1或空文档 - 若用了
View → Split(分屏),插件直接失效,不会报错,也不会标记差异 - 标签页标题带
*(未保存)时,比对可能静默判定为“相同”,因为插件比的是磁盘内容,不是编辑缓冲区 - 中文路径含空格或特殊字符(如
[)时,PowerShell 脚本里不加英文引号会报Cannot find path 'C:my'
想看哪些文件名不一致?用 PowerShell 一行命令
这不是 Notepad++ 的事,但你可以快速生成差异清单,再用 Notepad++ 打开查看——它只负责“看”,不负责“算”。
- 在文件夹路径下打开 PowerShell,运行:
Get-ChildItem "C:\path\to\folder1" -Recurse -Name | Sort-Object | ForEach-Object {$_.Trim()} > list1.txt<br>Get-ChildItem "C:\path\to\folder2" -Recurse -Name | Sort-Object | ForEach-Object {$_.Trim()} > list2.txt<br>Compare-Object (Get-Content list1.txt) (Get-Content list2.txt) - 输出中
=>表示只在 folder2 存在,表示只在 folder1 存在 - 若路径含中文且乱码,进
View → Options → Encoding设为 UTF-8;若文件名含[等,改用-FullName+Split-Path -Leaf
要真正比内容?交给 git diff 或 WinMerge
Notepad++ 可以当“显示器”,但不能当“CPU”。把差异计算交给专业工具,再用 Notepad++ 查看或编辑具体文件。
-
git diff --no-index folder1/ folder2/(需 Git for Windows)→ 输出干净,复制进 Notepad++ 后选Language → Diff自动着色 - WinMerge:GUI 双栏加载整个目录,自动标出缺失文件、内容差异、二进制文件;双击任意文件 → 右键
Open with Notepad++即可跳转编辑 -
diff -r -q folder1 folder2 > diff_report.txt(WSL/Cygwin)→ Notepad++ 打开该报告,适合批量留痕


















