Как сделать "diff -r" UNIX в Windows Cmd Prompt?

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

Ответ 1

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

Ответ 2

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

Вот пример:

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

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

Ответ 3

Самый простой способ, вероятно, будет загружать diff для Windows: http://gnuwin32.sourceforge.net/packages/diffutils.htm
Вы также можете сделать что-то вроде:

dir directory1 > dir1
dir directory2 > dir2
comp dir1 dir2

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

Ответ 4

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

Ответ 5

Вы можете установить Gow, и вы можете запустить diff в командной строке Windows.

Ответ 6

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

Файл → Сравнить каталоги

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

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

Ответ 7

Чтобы сравнить данные с командной строкой, вы можете использовать

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

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

Ответ 8

Частичное решение с ROBOCOPY

Частичное решение (и, следовательно, для меня, к сожалению, это "не-решение", хотя я и возлагал на него большие надежды), что может быть или не быть достаточно для вас:

Кажется, Инструмент ROBOCOPY может быть (ab-) использован для того, чтобы работать как ребяческое рекурсивное сравнение с недобросовестными людьми; с несчастливым ограничением, что он, по-видимому, не сравнивает содержимое файла. Кажется, он сравнивает размеры, даты и необязательные атрибуты. Волшебное заклинание для этого было бы:

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

где параметры Значение кажется следующим:

  • /e - recurse, включая пустые каталоги;
  • /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. Вызов robocopy на d1 и d2 дал пустой набор результатов для меня.

Ответ 9

В Windows 10 вы можете запустить команду diff в bash, включив оболочку Linux Bash