在Windows命令提示符下如何做UNIX的“diff -r”?

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

Solutions Collecting From Web of "在Windows命令提示符下如何做UNIX的“diff -r”?"

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

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

这里的例子:

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

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

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

 dir directory1 > dir1 dir directory2 > dir2 comp dir1 dir2 

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

在Windows中有fc命令。 我觉得diff好,但是如果你只想使用安装中的东西,那么你就去! 🙂

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

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

文件 – >比较目录

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

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

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

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

可以有不同的选项,如特定行数的搜索和不区分大小写的搜索,甚至可以比较文件夹与命令提示符。 以下是用命令提示符比较文件和文件夹的其他选项。

ROBOCOPY的部分解决方案

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

似乎ROBOCOPY工具可以被用来作为一个穷人的递归比较工作 , 不幸的是,它显然不会比较文件内容 。 它似乎比较大小,日期和可选的属性 。 这个神奇的咒语是:

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

选项的 含义似乎是:

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

其他选项:

  • /it – 我想这应该被添加,如果你想比较属性也看到什么“调整”文件的解释 。

警告:不会比较文件内容

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

 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 。 d1&d2上的robocopy调用为我创建了一个空的结果集。

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