Сравнение папок через командную строку - PullRequest
9 голосов
/ 14 ноября 2009

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

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

Ответы [ 5 ]

12 голосов
/ 14 ноября 2009
><a href="http://www.gnu.org/software/diffutils/" rel="noreferrer">diff</a> -r Folder_A Folder_B

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

7 голосов
/ 14 ноября 2009

Существует встроенная команда COMP, которую вы можете использовать. Это немного зависит от того, что вы на самом деле хотите сравнить.

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

COMP [данные1] [данные2] [/ D] [/ A] [/ L] [/ N = число] [/ C]

data1 Определяет местоположение и имя (имена) первого файла (ов) для сравнения.

data2 Определяет местоположение и имена второго файла для сравнения.

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

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

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

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

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

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

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

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

3 голосов
/ 14 ноября 2009

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

diff -r dir1 dir2

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

2 голосов
/ 22 января 2013
forfiles /P %folder1Path% /S /C "cmd /c comp /a @path %folder2Path%\@file"

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

0 голосов
/ 25 августа 2016

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

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