比较Windows中的2个目录

时间:2013-10-05 19:45:37

标签: windows directory compare diff

我需要比较2个文件夹“A”和“B”,并获取新添加或修改的文件和文件夹列表。

我尝试使用Winmerge软件,但它没有比较内部文件夹中的文件(因此我必须手动指向每个内部文件夹并进行比较)

有没有办法实现这一目标。

6 个答案:

答案 0 :(得分:10)

这也是相同的PowerShell代码。

$dir1 = Get-ChildItem -Recurse -path C:\dir1
$dir2 = Get-ChildItem -Recurse -path C:\dir2
Compare-Object -ReferenceObject $dir1 -DifferenceObject $dir2

来源:MS Devblog - Dr. Scripto

答案 1 :(得分:6)

对于Windows,您可以使用this solution

  

这是正确的方法,没有外部   下载。起初看起来很多,但是一旦你做完了,   这很容易。
  它适用于从7到95的所有Windows版本。   对于我们的示例,假设您正在比较两个名为“A”的目录   和'B'。

     
      
  1. 运行cmd.exe以获取命令提示符。 (在Windows 7中,powershell将不适用于此,仅供参考。)然后再次执行,以便您有两个   它们彼此相邻。
  2.   每个窗口中的
  3. 转到要比较的目录。 (使用'cd'命令。如果你对此不满意,那么你   除非您愿意,否则应该使用外部实用程序   学习命令提示符。)
  4.   
  5. 输入'dir / b> A.txt'进入一个窗口,'dir / b> B.txt'进入另一个。您现在将有两个文本文件列出每个文件的内容   目录。 / b标志表示裸,它剥离了目录列表   仅限文件名。
  6.   
  7. 将B.txt移动到与A.txt。
  8. 相同的文件夹中   
  9. 输入'fc A.txt B.txt'。命令'fc'表示文件比较。这将吐出两个文件之间的差异列表,用   每个差异上方和下方的额外文本行,所以你知道在哪里   他们是。有关如何格式化输出的更多选项,请键入“fc”   /?”在提示。您还可以将差异传递给另一个   通过使用类似'fc A.txt B.txt>的文件来存档differences.txt”。
  10.         

    有   乐趣。

答案 2 :(得分:2)

这不一定比已经提到的其他选项更好,但它可能更适合某些用例。就我而言,在将这些差异从一个目录复制到另一个目录之前,我想看看有什么不同。此方法非常适合这种情况,因为 /L 选项意味着仅记录运行此命令时会发生的情况。

robocopy C:\dir1 C:\dir2 /MIR /FP /NDL /NP /L

您可以使用其他标志进一步细化输出格式,或更改用于比较的逻辑等。所有选项请参阅robocopy docs

答案 3 :(得分:1)

我们多年来一直在使用Beyond Compare,它非常有用。您可以看到哪些文件是相同的,哪些文件只在文件夹“A”中,哪些文件只在文件夹“B”中,哪些文件不同(对于那些文件,您可以看到已经进行了哪些特定的修改)。

答案 4 :(得分:0)

查看本手册http://manual.winmerge.org/Compare_dirs.html#Compare_dirs_starting提供了有关如何以递归方式包含文件夹中所有文件的详细信息。

此外,你可以尝试超越比较工具diff。

答案 5 :(得分:0)

几年前,我制作了一个命令行实用程序 CrcCheckCopy,以帮助我验证大型数据副本的完整性。它读取源文件夹并生成所有文件的 CRC 列表。然后,使用这个列表,它可以验证另一个文件夹。

几年后我还用它来验证同一个文件夹,以确保没有意外删除或修改任何内容。

我从 here 免费赠送,以防遇到此问题的人想尝试一下。