在Windows上比较2个文件夹树的最佳方法是什么?

gri*_*yvp 49 comparison

我正在将一个存储库从sourcesafe转移到subversion,我需要确保关键点是平等的.是否有任何现有的Windows命令/工具允许我比较它们相同的两个文件夹树(具有相同的文件夹结构和相同内容的文件)?理想将是命令行像:

some_cool_compare c:\current_vss c:\current_svn -exclude .svn;*.vspscc;*.scc
Run Code Online (Sandbox Code Playgroud)

是否存在某些工具/命令或者我需要编写自己的脚本?

Pal*_*tir 44

如果你可以使用GUI工具,我尝试的最好的是WinMerge - 开源.

如果没有,那么diff就是你的朋友.

  • 然后...差异是你的朋友...像这样:http://gnuwin32.sourceforge.net/packages/diffutils.htm (3认同)

Lie*_*ers 31

超越比较可以让你做到这一点以及更多.

这是我不能没有的工具之一.
看看这里对脚本选项的参考


hal*_*llo 10

您也可以tree > tree.txt在两个文件夹中执行,然后使用任何基于文件的diff工具(git diff)对两个tree.txt文件进行区分.

  • 实际上我发现更容易做一个`dir/s/b> flatfilelist.txt`并比较结果. (8认同)
  • 此外与@SalmanA 一起使用 fc 命令来比较结果。 (2认同)

Ahm*_*met 8

由于我不愿意在我的机器上安装新程序,因此这个PowerShell脚本(来自Hey,Scripting Guy!Blog)帮助我解决了我的问题.我只修改了适合我的情况的路径:

$fso = Get-ChildItem -Recurse -path F:\songs
$fsoBU = Get-ChildItem -Recurse -path D:\songs
Compare-Object -ReferenceObject $fso -DifferenceObject $fsoBU
Run Code Online (Sandbox Code Playgroud)


Tod*_*ski 5

SyncToy是来自 Microsoft 的免费应用程序,具有用于比较两个路径的“预览”模式。例如:

SyncToy 预览截图(来源:https://maketecheasier-2d0f.kxcdn.com/assets/uploads/2010/06/synctoy-preview.png)

然后,您可以选择三种模式(“同步”、“回声”和“贡献”)中的一种来解决差异。

最后,它SyncToyCmd用于从 CLI 或计划任务创建和同步文件夹对。

  • 一个有效的关注!但是 .NET Framework(甚至 2.0)仍然受到 Microsoft 的完全支持。无需手动安装——您可以[直接在 Windows 10 控制面板中启用它](https://docs.microsoft.com/en-us/dotnet/framework/install/dotnet-35-windows-10#enable- the-net-framework-35-in-control-panel)。 (4认同)