如何在Windows Cmd提示符中执行UNIX的“diff -r”?

时间:2009-06-18 07:30:27

标签: windows cmd

如何比较Windows m / c的cmd提示符下的两个目录? 我想要等同于UNIX的diff -r。

9 个答案:

答案 0 :(得分:19)

安装Cygwin,您可以在Windows上使用diff -r

答案 1 :(得分:14)

Windows的comp命令是您正在寻找的。

这里的例子是:

要将目录C:\ Reports的内容与备份目录\\ Sales \ Backup \ April进行比较,请键入:

comp c:\reports \\sales\backup\april 

答案 2 :(得分:8)

最简单的方法可能是为Windows下载差异:http://gnuwin32.sourceforge.net/packages/diffutils.htm
你也可以这样做:

dir directory1 > dir1
dir directory2 > dir2
comp dir1 dir2

此外,某些版本的Windows附带windiff,但这是一个GUI工具

答案 3 :(得分:4)

在Windows中有fc命令。我认为diff更好,但是如果你只想使用安装附带的东西,那么,你走吧! :)

答案 4 :(得分:3)

您可以安装Gow,并且可以在Windows命令提示符下运行diff。

答案 5 :(得分:2)

您可以从NT版本开始使用Windows中包含的windiff util。只需运行'windiff',就会弹出一个图形工具。

档案 - >比较目录

http://msdn.microsoft.com/en-us/library/aa266122(VS.60).aspx

本文介绍如何从命令行使用它。这个工具的好处是它已经包含在内,你不需要下载和安装任何东西。

答案 6 :(得分:0)

要将数据与命令提示符进行比较,您可以使用

COMP / a / l D:\ Folder1 \ data.txt D:\ Folder2 \ data.txt

可以有不同的选项,例如要搜索的特定行数和不区分大小写的搜索,甚至可以将文件夹与命令提示符进行比较。以下是compare files and folders with command prompt的其他选项。

答案 7 :(得分:0)

使用ROBOCOPY

的部分解决方案

部分解决方案(因此对我来说不幸的是“非解决方案”,虽然我最初对它抱有很高的期望),这对你来说可能是也可能不够:

似乎ROBOCOPY tool can be (ab-)used to work as a kinda poor man's recursive comparison;由于不幸的限制,它显然 不比较文件内容 。它似乎比较尺寸,日期和可选的属性。对此的神奇咒语是:

ROBOCOPY path1 path2 /e /l /ns /njs /njh /ndl /fp /log:result.txt /it

其中options meaning似乎是:

  • /e - 递归,包括空目录;
  • /l - 仅打印日志,不要修改文件;
  • /ns /njs /njh - 不打印文件大小,作业摘要,作业标题;
  • /ndl - “不记录文件夹名称”
    • 注意:据报道,这将导致跳过丢失/多余的空目录;如果你不使用它,那些应该被记录,但你必须以某种方式通过其他方式删除不同的目录;
  • /log:result.txt - 将结果写入'result.txt'文件;我认为这可以省略,然后结果将显示在标准输出上。

其他选项:

警告:不比较文件内容

正如我上面所说,遗憾的是,这似乎并不是比较文件内容。我首先运行以下命令验证了这一点:

mkdir d1\a\b d2\a\b & echo x > d1\a\b\f & echo y > d2\a\b\f

大多数情况下,这应该生成具有相同时间戳的文件d1 \ a \ b \ f和d2 \ a \ b \ f,您可以使用dir d1\a\b\f d2\a\b\f进行验证。 {1}呼叫d1& d2为我生成了一个空结果集。

答案 8 :(得分:0)

在Windows 10中,您可以通过启用Linux Bash Shell在diff中运行bash命令