Вопрос по windows – Как сделать «diff -r» UNIX в Windows Cmd Prompt?

26

Как сравнить две директории в командной строке Windows m / c? Я хочу эквивалент diff -r UNIX.

Вероятно, принадлежит ServerFault вместо этого. Artem Russakovskii
Думаю, не совсем. Сравнение файлов - обычная операция и для программистов. Joey

Ваш Ответ

8   ответов
19

Cygwin и вы можете использоватьdiff -r на винде.

Error: User Rate Limit Exceeded
2

включенную в Windows, начиная с версии NT и выше. Просто запустите "windiff" и графический инструмент появится.

Файл - & gt; Сравнить каталоги

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

В этой статье описывается, как использовать его из командной строки. Большим преимуществом этого инструмента является то, что оно уже включено, и вам не нужно ничего скачивать и устанавливать.

Error: User Rate Limit Exceeded
0

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

Могут быть разные параметры, такие как определенное количество строк для поиска и регистрозависимый поиск, и даже вы можете сравнивать папки с командной строкой. Вот другие вариантысравнивать файлы и папки с помощью командной строки.

Этот вопрос требует рекурсивного решения. В настоящее время "Comp" не рекурсивно
14

комп Команда для Windows - это то, что вы ищете.

Вот пример:

Чтобы сравнить содержимое каталога C: \ Reports с каталогом резервных копий \\ Sales \ Backup \ April, введите:

comp c:\reports \\sales\backup\april 
Error: User Rate Limit ExceededcompError: User Rate Limit ExceededdiffError: User Rate Limit Exceeded/aError: User Rate Limit ExceededCompare and MergeError: User Rate Limit Exceeded
Error: User Rate Limit ExceededcompError: User Rate Limit Exceededmkdir foo1\bar\baz foo2\bar\baz & echo x > foo1\bar\baz\boo & echo y > foo2\bar\baz\boo & comp foo1 foo2Error: User Rate Limit ExceededCan't find/open file: foo1\*.*
8

http://gnuwin32.sourceforge.net/packages/diffutils.htm
Вы также можете сделать что-то вроде:

dir directory1 > dir1
dir directory2 > dir2
comp dir1 dir2

Кроме того, некоторые версии Windows поставляются сwindiffОднако это инструмент с графическим интерфейсом

Error: User Rate Limit Exceeded
4

fc команда. Я думаюdiff Это намного лучше, но если вы хотите использовать только то, что поставляется с установкой, ну, вот и все! :)

Error: User Rate Limit Exceeded
0

diff командовать вbash Включив Linux Bash Shell

0
Partial solution with ROBOCOPY

таким образом, для меня, к сожалению, «не решение», хотя у меня изначально были на это большие надежды), которое может быть или не быть достаточным для вас:

КажетсяИнструмент ROBOCOPY может быть использован для рекурсивного сравнения своего рода бедного человека.; с прискорбным ограничением, что это, по-видимому,doesn't compare file contents, Похоже для сравненияsizes, dates и опциональноattributes, Волшебное заклинание для этого будет:

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

гдеопции имея в виду кажется:

/e - recurse, including empty directories; /l - only print a log, don't modify files; /ns /njs /njh - don't print file sizes, job summary, job header; /ndl - "don't log folder names" NOTE: this reportedly will result in skipping cases of missing/superfluous empty dirs; if you don't use this, those should get logged, but you'll have to somehow remove non-differing dirs by other means; /log:result.txt - write results to 'result.txt' file; I think this can be omitted and result will be shown on standard output then.

Дополнительные опции:

/it - I think this should be added if you want to compare attributes too - see an explanation on what "tweaked" files are. Warning: does NOT compare file contents

Как я уже сказал выше, это, к сожалению, не для сравнения содержимого файла. Я проверил это, выполнив следующую команду:

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,robocopy позвоните по d1 & amp; d2 дал пустой набор результатов для меня.

Похожие вопросы