Сравнение Папок Через Командную Строку

Я хочу сравнить две папки в Windows (Vista, XP), которые имеют большое количество огромных файлов, которые мне нужно сравнить. Если я использую Beyond Compare или такой инструмент для сравнения папок, это займет много времени, если я сделаю это вручную. Мне нужно добавить это сравнение папок в пакетный файл.

Итак, в Windows (XP, Vista) есть ли какая-либо команда (встроенная) или любой сторонний инструмент/утилита (коммерческая или бесплатная) для сравнения двух папок с помощью командной строки.

5 ответов


есть встроенная команда COMP Что вы могли бы использовать. Это немного зависит от того, что вы действительно хотите сравнить.

сравнивает содержимое двух файлов или набор файлов.

COMP [data1] [data2] [/D] [/A] [/L] [/N=число] [/C]

data1 указывает местоположение и имя(имена) первого(ых) файла (ов) для сравнения.

data2 указывает местоположение и имя(имена) вторых файлов для сравнения.

/ D отображает различия в десятичный формат.

/A Дисплеи различия в символах ASCII.

/ L Отображает номера строк для различий.

/N=число сравнивает только первый заданное количество строк в каждой файл.

/ C игнорирует случай Буквы при сравнении файлов.

для сравнения наборов файлов используйте подстановочные знаки в data1 и data2 параметры.

использовать следующий синтаксис COMP c:\folder1 c:\folder2 для сравнения всех файлов в folder1 с содержанием folder2. Если вам нужно рекурсировать в подкаталоги, вам нужно использовать пакетный скрипт, используя FOR петли и PUSHD и .

просто оставьте комментарий, если вам нужна помощь с этим.


>diff -r Folder_A Folder_B

вы можете найти GNU diffutils, скомпилированные для windows в GnuWin32.


Я использую Cygwinверсии инструментов командной строки Unix:

diff -r dir1 dir2

Я также использовал MinGW в прошлом. У обоих есть несколько gotchas, но они " достаточно близки."Для визуальных различий мне нравится WinMerge очень хорошо.


forfiles /P %folder1Path% /S /C "cmd /c comp /a @path %folder2Path%\@file"

будет работать, но я не могу удалить запрос после первого сравнения.


мои два каталога имеют одинаковую структуру, всего несколько изменений версии файлов. Кроме того, мой каталог был просто папкой файлов python. Так что мне все сошло с рук...

$ cat dir1/*.py > file1.txt 
$ cat dir2/*.py > file2.txt
$ diff file1 file2