Как сравнить содержимое двух папок и синхронизировать их

Предположим, вы создали задачу резервного копирования XCopy, SyncToy или любого другого инструмента для зеркального копирования определенного каталога в другое место. Если вы используете Microsoft SyncToy, возможно, что иногда файлы или папки могут отсутствовать в месте назначения, или в папке назначения есть дополнительные файлы или папки, которых нет в исходной папке.

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

В этой статье обсуждается 12 методов сравнения папок (для Windows). Выберите тот, который подходит вам лучше всего. Если вам нужно проверить целостность файла после синхронизации, используйте одну из следующих процедур проверки контрольной суммы хеша.

Сравните содержимое двух папок с помощью Microsoft WinDiff

WinDiff - это графический инструмент сравнения файлов от Microsoft, который был впервые выпущен в 1992 году и впоследствии обновлен. Пожалуйста, подождите! Не смущайтесь годом первого выпуска.

WinDiff по-прежнему великолепен и прекрасно работает в Windows 10, но не поддерживает Unicode. У него огромный потенциал. WinDiff может сравнивать файлы ASCII и двоичные файлы, сравнивать две директории и синхронизировать папки (левая папка → правая папка или наоборот).

Ссылка для скачивания WinDiff (локальное зеркало). Последняя обновленная версия WinDiff - 5.2.3790.0 с отметкой даты изменения, отображаемой 4-7-2016.

Вы также можете загрузить WinDiff как часть пакета средств поддержки Windows XP и извлечь его содержимое с помощью 7-Zip.

Для сравнения каталогов с помощью WinDiff:

  1. Запустите Windiff.exe.
  2. В меню Файл выберите Сравнить каталоги.
  3. В диалоговом окне «Выбор каталогов» введите имена двух папок, которые вы хотите сравнить, в полях Dir1 и Dir2. Если вы хотите рекурсивно сравнивать файлы в этих папках, установите флажок Включить подкаталоги .

Окно результатов или структуры по умолчанию показывает одинаковые файлы, а также различия. Вы можете скрыть идентичные файлы, отключив « Показать идентичные файлы» в меню «Параметры».

Как вы можете видеть, WinDiff не только сравнивает имена файлов, но также сравнивает содержимое файлов в обоих местах и ​​выделяет изменения, если содержимое файлов отличается.

Двойной щелчок на «другом» элементе открывает окно сравнения с цветовым кодированием. Результаты с цветовой кодировкой указывают на различия в файлах.

WinDiff может делать ASCII и двоичное сравнение. Это означает, что WinDiff не полагается на дату изменения, но сравнивает фактическое содержимое файлов.

Например, я изменил символ в текстовом файле в папке назначения (Правая папка). Я заменил восклицательный знак двоеточием, и размер файла в обоих местах одинаков (1127 байт). WinDiff поднял его и показал, что файлы разные.

Чтобы сохранить различия в сравнении каталогов в файле, нажмите « Сохранить список файлов» в меню «Файл». Введите имя файла с полным путем без двойных кавычек.

Снимите флажок « Идентичные файлы» и « Включить контрольные суммы» и нажмите «ОК». Выходной файл будет выглядеть так:

 - D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019: E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019 - включает в себя только слева, только справа, отличающиеся файлы. \ accesschk.exe только в E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ compare-folder.txt только в E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ Fta-1803-w10.txt только в E: \ RameshPC-синхронизированной резервной копии \ Веб-сайты \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ Ssh-команды-полезный .txt только в E: \ RameshPC-Synced Backup \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 05 \ dell-supportassist.png только в D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 05 \ disable-theme-sync-ramesh.png отличается (E: \ RameshPC-синхронизированное резервное копирование \ Веб-сайты \ Winhelponline \ blog \ wp-content \ uploads \ 2019 более новый). \ 05 \ file-explorer- not-highlight-files.png только в D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 05 \ firefox-забудьте-about-this-site-4.png отличаются nt (более поздняя версия E: \ RameshPC-Synced Backup \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019). \ 05 \ msconfig-disable-services-non-microsoft.png только в D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 05 \ windows-store-error-0x800706d9.png только в D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ notepad-bing-search .png только в E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ rundll32-refresh-commands.txt только в E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ archives \ 404chk.vbs только в E: \ RameshPC-синхронизированная резервная копия \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ archives \ actxprxy-missing -issues.txt только в E: \ RameshPC-синхронизированное резервное копирование \ Веб-сайты \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ archives \ apps.png только в E: \ RameshPC-синхронизированное резервное копирование \ Веб-сайты \ Winhelponline \ blog \ wp-content \ uploads \ 2019. \ 06 \ archives \ article.vbs только в E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ upl oads \ 2019. \ 06 \ archives \ bash-sh.vbs только в E: \ RameshPC-синхронизированная резервная копия \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019 - в списке 17 файлов 

Поскольку выходной файл находится в формате с разделителями табуляции, вы сможете легко импортировать его в Microsoft Office Excel или Google Sheets.

Обратите внимание, что вы можете запустить WinDiff напрямую с путями источника и назначения в качестве дополнительных ключей для сравнения каталогов. Например, запуск windiff.exe "c:\source" "d:\destination" запустит инструмент и сразу сравнит эти два пути к папкам.

Переключатели командной строки WinDiff

Вот полный список параметров командной строки WinDiff.

 Использование: windiff [options] path1 [path2] Опции: -D Сравнить только один каталог. -F [flags] savefile Сохранить составной файл в «savefile». «Флаги» могут состоять из одного или нескольких из I (идентичных), L (слева), R (справа), F (перемещено leFt), G (перемещено riGht), S (аналогично слева), A (аналогично справа), X (выход после сохранения списка). (например, -FLF сохраняет список строк Left или Move-LeFt). -I файл Считывает список файлов для сравнения из указанного входного файла. Каждая строка может содержать одно или два имени файла, разделенных пробелами (с кавычками, если имена файлов содержат пробелы). Используйте «-» в качестве имени файла для чтения из стандартного ввода. Если строка содержит только одно имя файла, файл сравнивается с самим собой. -N имя NET SEND уведомление «имя» в конце сравнения. -O Контурный вид (без автоматического расширения). -P Извращенное сравнение: разрывает линии на пунктуацию. -S [flags] savefile Сохранить список файлов в «savefile». «Флаги» могут состоять из одного или нескольких из S (одинаковых), L (слева), R (справа), D (разных), X (выход после сохранения списка). (например, -SLD сохраняет список левых или разных файлов). -T Сравните целое поддерево. 

Чтобы сохранить отчет о сравнении в файл, используйте ключ -S . Примеры ниже:

Сохраните список идентичных файлов в diff.txt:

 -SS D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Сохраните список разных файлов в diff.txt:

 -SD D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Сохраните список оставленных только файлов в diff.txt:

 -SL D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Сохраняет список правых файлов в diff.txt:

 -SR D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Сохраняет список левых и правых файлов в diff.txt:

 -SLR D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Чтобы автоматически выйти из WinDiff после сохранения отчета о сравнении, добавьте переключатель X, как показано ниже:

Сохраните список правых файлов в diff.txt и выйдите из WinDiff.

 -SRX D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Сохраните список левых и правых файлов в diff.txt и выйдите из WinDiff

 -SLRX D: \ output \ diff.txt c: \ folder1 d: \ folder2 

Чтобы сгенерировать все 5 отдельных «лог» файлов, вам нужно будет запустить WinDiff 5 раз.

Пример:

 windiff -SSX same.txt c: \ folder1 d: \ folder2 windiff -SDX Different.txt c: \ folder1 d: \ folder2 windiff -SLX left-only.txt c: \ folder1 d: \ folder2 windiff -SRX только для правого .txt c: \ folder1 d: \ folder2 windiff -SLRX left-right-only.txt c: \ folder1 d: \ folder2 

См. Также Содержимое файла справки WinDiff (windiff.hlp) в формате HTML.

Синхронизация папок с WinDiff

Что еще? WinDiff также может копировать отсутствующие или разные файлы в левую (папка 1) или в правую (папка 2) папку. Для этого

  1. В меню «Файл» выберите « Копировать файлы».
  2. Введите путь к папке, куда вы хотите скопировать отсутствующие / разные файлы.

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

  3. Выберите Копировать с места (Левое дерево на Правое дерево или наоборот)
  4. Снимите флажок с идентичных файлов и нажмите ОК.

    WinDiff теперь синхронизирует папку, рекурсивно копируя отсутствующие и измененные файлы в указанное место (влево → вправо).

Несмотря на превосходное сравнение ASCII и двоичного кода и базовые возможности синхронизации, WinDiff часто недооценивается как инструмент для ИТ-специалистов. Это потому, что он имеет устаревший пользовательский интерфейс и не поддерживает Unicode. Но WinDiff достаточно для большинства из нас, особенно для тех, кто использует англоязычную ОС.

У Microsoft есть статья базы знаний по WinDiff под названием «Как использовать утилиту Windiff.exe», которую вы, возможно, захотите проверить.

Сравните содержимое двух папок с помощью WinMerge

Вот как сравнить две папки с подпапками, используя WinMerge.

WinMerge - это средство различий и слияния с открытым исходным кодом для Windows. Он может сравнивать как папки, так и файлы, представляя различия в визуальном текстовом формате, который легко понять и обрабатывать. Давайте использовать его для сравнения содержимого двух папок и их подпапок (т.е. рекурсивно).

  1. Запустите WinMerge. В меню Файл выберите Открыть

  2. Найдите и выберите первую и вторую папки для сравнения.
  3. Убедитесь, что фильтр установлен на *.* Чтобы все файлы сравнивались. Параметр «Включить подпапки» (рекурсивное сравнение) включен по умолчанию. Если вы хотите сравнивать файлы только в каталоге верхнего уровня, снимите этот флажок.
  4. Нажмите Сравнить

    WinMerge генерирует результаты сравнения папок, выделяя различия желтым цветом.

  5. В меню « Сервис» выберите « Настроить столбцы» . Выберите нужные столбцы, например « Left size Right size, « Left date Right date из множества других представленных вариантов столбцов.

  6. Разверните запись « Папки разные », дважды щелкнув по ней. Он показывает список файлов, которые отличаются : « только слева », « только справа », а также идентичные файлы.

    Примечание. Вы можете скрыть идентичные файлы и папки, сняв флажок «Показать идентичные элементы» в меню «Вид» в WinMerge.

Преимущество использования WinMerge состоит в том, что он предлагает пять различных методов сравнения файлов на выбор:
  1. Полное содержание (по умолчанию): полное сравнение файлов по содержимому со всеми прибамбасами. Этот метод вызывает плагины и использует механизм diffutils для полностью точного дифференцирования и обнаружения перемещенных блоков. Это наиболее полный и рекомендуемый метод.
  2. Краткое содержание: Уменьшенное сравнение файлов по содержимому. Этот метод использует упрощенный код сравнения файлов, который пропускает плагины и обнаружение перемещенных блоков. Этот метод быстрее, чем полное содержание, потому что он не загружает файлы. Его недостатком является то, что линейные фильтры не применяются при сравнении. Например, этот метод видит файл как отличающийся, даже если строчные фильтры установлены так, чтобы игнорировать все различия в файлах.
  3. Дата изменения: сравнивает только даты изменения файлов, так что это намного быстрее, чем любой из методов содержимого. Но, очевидно, это так же точно, как даты модификации.
  4. Дата и размер изменения: аналогично дате изменения, но также проверяет размеры файлов, когда даты совпадают.
  5. Размер: сравнивает только размеры файлов, поэтому это быстро, но не так точно, как методы содержимого.

WinMerge поддерживает множество параметров командной строки. Ознакомьтесь с Руководством по WinMerge для получения полного списка поддерживаемых параметров командной строки.

Синхронизация папок с WinMerge

Если вы сняли флажок « Показывать идентичные элементы из меню« Вид »в WinMerge, он отображает только список измененных, только левых и только правых файлов. Легко синхронизировать элементы слева → справа или наоборот.

Все, что вам нужно сделать, это выбрать файлы (или выбрать все), щелкнуть правой кнопкой мыши по выбору и нажмите кнопку Копировать. В подменю «Копировать» выберите один из вариантов:

  1. Слева направо: скопировать выбранные файлы из левой папки вправо.
  2. Слева…: скопировать файлы из левой папки в другую папку.
  3. Справа налево: скопировать выбранные файлы из правой папки в левую.
  4. Право на ... : копирование файлов из правой папки в другую папку.


Способ 3: Как сравнить файлы в двух папках с помощью FreeFileSync

FreeFileSync - это программное обеспечение для сравнения и синхронизации папок с открытым исходным кодом, которое создает резервные копии всех ваших важных файлов и управляет ими.

  1. Скачайте FreeFileSync и установите его.
  2. Чтобы сравнить папки по содержимому файла, а не по размеру или дате изменения файла, выберите « Содержимое файла» в параметрах сравнения. Хотя сравнение по размеру файла будет намного быстрее и менее ресурсоемким.
  3. Выберите левую папку и правую папку.
  4. Нажмите кнопку Сравнить (содержимое файла) .

    Он рекурсивно сравнивает элементы в двух папках и показывает список новых и измененных файлов.

    Одинаковые файлы скрыты в выводе. Он показывает только левые файлы, разные файлы и только правые файлы по умолчанию, а параметры можно переключать с помощью кнопок в нижней части окна FreeFileSync.

Синхронизировать папки с помощью FreeFileSync

FreeFileSync предлагает следующие параметры синхронизации, аналогичные Microsoft SyncToy.

  1. Двухсторонняя синхронизация: выявление и применение изменений с обеих сторон. Удаления, перемещения и конфликты обнаруживаются с использованием базы данных.
  2. Зеркало: Зеркало слева → Правая синхронизация. Правая папка станет зеркальной копией левой папки. Это то же самое, что опция Echo от Microsoft SyncToy и командная строка robocopy / mir. Лишние файлы и папки в правой папке удаляются, а другие файлы заменяются.
  3. Обновление: этот параметр синхронизации выполняет синхронизацию левой папки → правой папки аналогично параметру « Зеркало» . Однако эта опция не удаляет лишние файлы и папки в правом дереве папок. Это похоже на опцию Contribute в Microsoft SyncToy.
  4. Пользовательский. В дополнение к вышеупомянутым трем предварительно заданным параметрам пользовательский параметр позволяет выбрать действие по умолчанию, касающееся работы только с левым файлом, измененным файлом или только с правым файлом. Например, вы можете настроить его на удаление идентичных файлов, если вы хотите, чтобы в левой и правой папках были только уникальные файлы (исключите дубликаты). В большинстве случаев вам не нужно выбирать пользовательскую настройку, если у вас нет особых требований.

По умолчанию выполняется двухсторонняя синхронизация. Лично я предпочитаю резервное копирование зеркала для проектов моего веб-сайта и опцию обновления резервной копии для документов. Выберите один из вариантов синхронизации соответственно.

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

  • Чтобы синхронизировать все элементы, отображаемые в списке, нажмите кнопку « Синхронизировать» вверху.
  • Чтобы синхронизировать определенный файл или набор файлов, исключите все элементы (временно) через меню, вызываемое правой кнопкой мыши, затем установите флажок для выбранных файлов, щелкните правой кнопкой мыши выделенную область, нажмите « Синхронизировать выделенную область» и нажмите « Пуск» .

Это оно! Ваши папки теперь синхронизированы, а операции копирования / обновления / удаления регистрируются FreeFileSync.

Сравнить и синхронизировать локальную папку Vs. Папка FTP рекурсивно

FreeFileSync также может сравнивать локальную папку с Google Drive или локальную папку с папкой, на которой ваш FTP-сервер рекурсивно с использованием FTP или SFTP-соединения. Вот как сравнить и синхронизировать локальную папку и подпапки с папкой на вашем FTP-сервере.

Все, что вам нужно сделать, это нажать на кнопку « Доступ к онлайн-хранилищу» рядом с кнопкой «Обзор» на левой панели или на правой стороне. При нажатии на эту кнопку открывается следующее диалоговое окно:

Введите информацию о соединении FTP или SFTP, учетные данные и путь к каталогу FTP для сравнения с вашей локальной папкой.

После этого вы вернулись в окно сравнения.

Выберите Размер файла или Метод сравнения времени и размера файла . Последний метод сравнения является более надежным.

Выберите вариант синхронизации. Для этой цели я установил для себя двустороннюю синхронизацию (вместо зеркала ).

После настройки нажмите «Сравнить». Вы увидите список отсутствующих и разных файлов в левой и правой папках.

Нажмите кнопку « Синхронизировать», чтобы скопировать файлы в обоих направлениях, поскольку выбрана двухсторонняя синхронизация. Если вы хотите обновить только местоположение FTP, выберите « Зеркальная синхронизация».

Запустите FreeFileSync как пакетное задание | Синхронизация командной строки

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

  1. Выберите « Сохранить как пакетное задание» в меню «Файл».

  2. Вы можете настроить пакетное задание так, чтобы оно было свернуто и автоматически закрывало окно после завершения синхронизации.

  3. Сохраните файл пакетного задания в папку по вашему выбору, скажем, d: \ BatchRun.ffs_batch
  4. Затем, чтобы синхронизировать папки с помощью командной строки, используйте следующий синтаксис командной строки:
     C: \ Program Files \ FreeFileSync \ FreeFileSync.exe d: \ BatchRun.ffs_batch 

    Вы можете создать пакетный файл Windows или запустить указанную выше команду через планировщик задач через определенные промежутки времени.

Совет: FreeFileSync также может синхронизировать папки с Google Диском.


Метод 4: Как сравнить файлы в двух папках с помощью TotalCommander

Total Commander - файловый менеджер для Windows, который позволяет копировать, перемещать или удалять файлы. Total Commander может сделать гораздо больше. Он может упаковать и распаковать файлы, получить доступ к FTP-серверам, сравнить файлы по содержимому и т. Д.

  1. Запустите Total Commander и выберите левую папку и правую папку для сравнения.
  2. В меню « Команды» выберите « Синхронизировать каталоги».

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

    Если вы выберете опцию « Асимметричный», то правая папка станет зеркалом левой - аналогично командной строке RoboCopy / MIR или опции « Echo Microsoft SyncToy. То есть опция копирует отсутствующие или разные файлы в нужную папку, а все лишние файлы и папки справа удаляются.

    Вы можете выбрать показывать идентичные файлы или только разные файлы в выводе.

    Опции сравнения / синхронизации Total Commander описаны ниже.

    асимметричныйЕсли эта опция отмечена, предполагается, что копия левой стороны должна быть создана с правой стороны. Файлы, которые не существуют слева, будут помечены для удаления справа. Эта опция предназначена для резервного копирования.
    SUBDIRSТакже сравниваются подкаталоги двух выбранных каталогов.
    по содержаниюСравнивает содержимое файлов с одинаковым размером и датой. Он проверяет, что файлы также имеют одинаковое содержимое.
  3. Выберите параметры сравнения «Субдиры», «по содержанию».

    Важное замечание: Если установлен флажок игнорировать дату, Total Commander не сможет найти различные / измененные файлы, даже если размеры файлов различны. Кажется, это ошибка в Total Commander, и я могу воспроизвести ее каждый раз.

  4. В разделе «Показать» отключите « Равные файлы» (обозначается символом = ) и активируйте остальные три кнопки.
  5. Включите параметры « Одиночные и дубликаты» .
  6. Нажмите кнопку Сравнить

Total Commander - Папка сравнения аргументов командной строки

Чтобы запустить «Синхронизировать каталоги», вы можете использовать следующий синтаксис командной строки:

 TOTALCMD64.EXE / S = S d: \ folder_1 d: \ folder_2 

Затем настройте параметры и нажмите кнопку « Сравнить» .

Чтобы сразу запустить «Синхронизировать директории» и сравнить папки, используйте этот синтаксис:

 TOTALCMD64.EXE / S = S: = d: \ folder_1 d: \ folder_2 

(сравнение начнется с пропущенных каталогов и последних использованных опций.)

При желании вы также можете ввести имя параметра в форме /S=S:SettingsName чтобы сравнение началось немедленно на основе ранее сохраненного параметра.

Синхронизировать папки с помощью TotalCommander

  1. В окне сравнения выберите файлы, которые вы хотите скопировать. Это можно сделать, установив флажок между двумя столбцами сравнения или выбрав один из параметров в контекстном меню.

    По умолчанию функция выберет все более новые файлы для копирования. Чтобы отменить выбор файла, чтобы предотвратить его копирование или синхронизацию, дважды щелкните стрелку. Чтобы отменить выбор нескольких файлов, выберите файлы, щелкните правой кнопкой мыши элемент (ы) и выберите « Удалить выделение».

    Важное замечание: Если параметр « Асимметричный» не включен, и если файл в правой папке новее, чем файл в левой папке, синхронизация будет выполняться справа налево для этого файла. Чтобы изменить его другим способом, нажмите на стрелку рядом с файлом, которая переключает направление синхронизации.

    Кроме того, вы можете щелкнуть правой кнопкой мыши файл и выбрать Обратное направление копирования, чтобы изменить направление синхронизации.

  2. Нажмите на Синхронизировать . Откроется диалоговое окно для копирования выбранных файлов.

    По умолчанию он синхронизируется в обоих направлениях. Если вы хотите синхронизировать одним способом - например, левая папка → правая папка, снимите флажок « Справа налево» и наоборот.

Совет: Используя Total Commander, вы даже можете синхронизировать локальный каталог и каталог на FTP-сервере.


Метод 5: Сравнить и синхронизировать папки в режиме реального времени с помощью DSynchronize

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

  1. Запустите DSynchronize и настройте исходную и целевую папки.
  2. Вы можете назначить пользовательское имя задания (для последующей автоматизации), нажав на кнопку JOBS. Давайте установим название работы как Uploads
  3. Для зеркальной синхронизации убедитесь, что двунаправленная синхронизация отключена.
  4. Чтобы выполнить сравнение (только) без синхронизации двух папок, включите параметр « Предварительный просмотр синхронизации» в разделе «Общие».

  5. Нажмите на кнопку Синхронизировать, чтобы просмотреть список новых, обновленных и отсутствующих файлов в обоих местах.

Синхронизировать папки

Чтобы синхронизировать папки, снимите флажок « Предварительный просмотр синхронизации» в разделе « Общие » и нажмите « Синхронизировать» . По умолчанию он синхронизируется в зеркальном режиме. Зеркальный режим обсуждался в этой статье ранее. Зеркальный режим гарантирует, что правая папка точно такая же, как левая папка. Любые дополнительные каталоги и файлы в месте назначения удаляются автоматически.

Синхронизация в реальном времени

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

  1. Нажмите на синхронизацию в реальном времени под разделом таймера.
  2. Настройте параметры синхронизации в режиме реального времени по своему усмотрению. Я использовал настройки по умолчанию.

    По умолчанию он автоматически синхронизирует папки по истечении 10 секунд. Вы можете настроить его на дальнейшую отсрочку или запланировать его запуск через определенные интервалы.

  3. Установите флажок « Подпапки монитора» для рекурсивной синхронизации папок.

Я скопировал некоторые файлы в левую папку (источник), и в течение 10 секунд элементы были автоматически синхронизированы с правой папкой. Вы можете видеть это в этом анимированном GIF:

И изменения (добавления и удаления файлов или папок) регистрируются в главном окне.

Когда включена синхронизация в реальном времени, она отслеживает изменения файлов, и программа находится в области уведомлений в ожидании изменений. Это не займет много ресурсов процессора или памяти. Последний раз, когда я проверял, он использовал только около 10 МБ памяти.

Вот список основных функций DSynchronize:

  • Стандартная и таймерная синхронизация.
  • Синхронизация в реальном времени.
  • Двунаправленная синхронизация.
  • Транзакционная синхронизация (по журналу NTFS).
  • Выборочный фильтр (вы можете исключить отдельные файлы или папки).
  • Начать как сервис (программа не должна входить в систему).
  • Поддерживает символические ссылки и жесткие ссылки.
  • Поддерживает соединения и точки монтирования.
  • Поддерживает ACL.
  • Журнал отправлен по электронной почте.
  • Резервное копирование предыдущей версии замененных файлов.
  • Байт в байтовое сравнение.
  • Поддерживает несколько заданий, каждое со своими настройками и путями синхронизации.
  • Минимальное потребление ресурсов (RAM и CPU).

Поддержка командной строки

Вы можете использовать следующую командную строку для автоматизации DSynchronize:

/START = начать синхронизацию с последними сохраненными параметрами.

/STARTJOB "JobName" = начать синхронизацию с выбранными параметрами задания).

/MINIMIZE = Запускается свернутым в панели трея.

/HIDDEN = Не отображать значок на панели задач.

/NOSECURITYCHECK = Не проверять безопасность перед синхронизацией.

/NOMONITORCHECK = Не проверять разрешение монитора.

/AUTOREALTIME = Запускается свернутым, выполнить стандартную синхронизацию и активировать RealTime.

/SOMEFILE.INI = Начинает использовать выбранный INI-файл.

Имя задания можно настроить, нажав кнопку « JOBS» в верхней части главного окна программы.

Например, чтобы автоматически синхронизировать две папки (ранее сохраненное задание с именем «Загрузка»), я бы запустил эту команду:

 "D: \ dsynchronize \ DSynchronize.exe" / STARTJOB "Загрузить" / МИНИМИЗИРОВАТЬ 

Чтобы синхронизировать две папки (задание «Загрузка») и активировать синхронизацию в реальном времени, выполните:

 "D: \ dsynchronize \ DSynchronize.exe" / STARTJOB "Загрузка" / AUTOREALTIME 

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

Это оно!


Метод 6: Сравните две папки с утилитой HashMyFiles, используя File Hash Checksum

HashMyFiles - небольшая утилита, которая вычисляет контрольные суммы хешей для ваших файлов. Он может вычислить хеш для файлов в папке и ее подпапках рекурсивно. HashMyFiles позволяет сохранить результаты в файл. Он также может вычислить контрольную сумму хеша через контекстное меню.

Если PowerShell не ваша чашка чая, используйте утилиту HashMyFiles от Nirsoft.net для сравнения хэшей файлов.

Вы можете сохранить имена файлов и соответствующие выходные данные хеш-функции для дерева исходных папок в source.txt . Аналогичным образом сохраните записи для дерева папок назначения как destination.txt .

В этом примере мы собираемся сравнить файлы в следующих папках:

 D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019 E: \ RameshPC-синхронизированная резервная копия \ Websites \ Winhelponline \ blog \ wp-content \ uploads \ 2019 

Выполните следующие шаги, чтобы сгенерировать хэши файлов с помощью HashMyFiles и сравнить их:

  1. Скачайте HashMyFiles и запустите его.
  2. В меню «Параметры» выберите «Типы хэширования» и выберите « SHA-256».

  3. В меню «Вид» выберите « Выбрать столбцы».

  4. В настройках столбца включите параметры SHA-256, Полный путь и Размер файла . Нажмите ОК.
  5. Откройте меню «Файл» и выберите « Добавить папку».
  6. Выберите исходную папку для сравнения.

  7. Нажмите, чтобы выбрать Добавить файлы в подпапках, и нажмите OK.
  8. Сортируйте результаты по полному пути и выберите все записи.
  9. В меню Файл выберите Сохранить выбранные элементы.
  10. Сохраните список в файл с именем source.txt
  11. Очистите результаты, выбрав « Очистить все» в меню «Файл».
  12. Повторите вышеуказанные шаги, и на этот раз выберите папку назначения, сохраните данные в файле destination.txt
  13. Теперь отредактируйте файлы source.txt и destination.txt с помощью Блокнота и удалите базовые пути. Используя опцию Find в Блокноте, найдите каждое вхождение базового пути ниже и замените его пустой строкой.
     D: \ Веб-сайтов \ Winhelponline \ блог \ сор-контент \ 
  14. Аналогично, в файле destination.txt удалите этот базовый путь:
     E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ 

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

    Вот как теперь выглядят файлы:

  15. Теперь запустите WinDiff или ваш любимый инструмент для сравнения файлов, чтобы увидеть различия.

Вы увидите список различных файлов, дополнительных файлов и отсутствующих файлов.


Метод 7: Как сравнить файлы в двух папках с помощью Robocopy

Давайте теперь посмотрим, как использовать встроенную консольную утилиту Robocopy для сравнения содержимого двух папок.

Robocopy («Robust File Copy for Windows») - это превосходный встроенный в Windows инструмент для копирования файлов, обладающий огромными возможностями. Возможности Robocopy выходят за рамки встроенных команд Windows Copy и XCopy. RoboCopy является наиболее предпочтительным из всех методов командной строки, поскольку Robocopy сравнивает не только имена файлов, но и время последнего изменения. Он сообщает список измененных файлов и новых файлов / папок в исходном и целевом путях.

Среди его превосходных функций - копирование в «зеркальном» режиме (аналогично опции « Эхо » в Microsoft SyncToy), возможность повторять копирование в случае прерывания работы сети, многопоточное копирование и т. Д. Помимо копирования файлов, мы можем использовать Robocopy для простого сравнения содержимое двух папок (рекурсивно) и регистрируйте различия, не копируя ничего, как пробный прогон .

сценарий

Файлы моего сайта регулярно синхронизируются с внешним жестким диском ( E:\ ). Для иллюстрации давайте проверим, идентичны ли эти две папки. В этом примере мы будем рекурсивно сравнивать следующие папки (то есть вместе с подпапками глубокое сравнение):

 D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads и E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ uploads 
  1. Откройте окно командной строки.
  2. Запустите следующую команду и нажмите клавишу ВВОД:
     robocopy "D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads" "E: \ RameshPC-синхронизированное резервное копирование \ Веб-сайты \ Winhelponline \ blog \ wp-content \ uploads" / L / TS / MIR / LOG: D: \ Diff.txt 

    Результаты этой команды записываются в файл D:\Diff.txt .

  3. Выйдите из окна командной строки.

Подробная информация об используемых параметрах командной строки Robocopy

  • /L :: List only - не копировать, не ставить отметки времени и не удалять файлы. Эта опция используется только для целей регистрации; для пробежки.
  • /MIR :: MIRror дерево каталогов (эквивалентно / E плюс / PURGE). Поскольку мы используем его с ключом /L, файл / папка фактически не будет скопирован.
  • /TS :: включить в вывод метки времени исходного файла.
  • /LOG:file :: состояние вывода в файл LOG (перезаписать существующий журнал).

В этом примере мы записываем вывод в D:\Diff.txt . Вот как выглядит журнал:

  ------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows ------------------------------------------------------------------------------- Started : Monday, April 8, 2019 5:06:10 PM Source : D:\Websites\Winhelponline\blog\wp-content\uploads\ Dest : E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\ Files : *.* Options : *.* /TS /L /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /R:1000000 /W:30 ------------------------------------------------------------------------------ 583 D:\Websites\Winhelponline\blog\wp-content\uploads\ *EXTRA Dir -1 E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019\videos\ *EXTRA File 821886 2019/04/07 07:19:24 tiktok-superman-dance.mp4 3 D:\Websites\Winhelponline\blog\wp-content\uploads\2019\Scripts\ Older 210 2019/04/08 10:54:59 0x80071A91.vbs Newer 211 2019/04/08 11:35:32 ErrCodeFinder.vbs New File 211 2019/04/08 11:35:32 Sample.vbs 211 D:\Websites\Winhelponline\blog\wp-content\uploads\h1-10\ 83 D:\Websites\Winhelponline\blog\wp-content\uploads\h1-11\ 1 D:\Websites\Winhelponline\blog\wp-content\uploads\reg\ 9 D:\Websites\Winhelponline\blog\wp-content\uploads\temp\ ------------------------------------------------------------------------------ Total Copied Skipped Mismatch FAILED Extras Dirs : 113 0 113 0 0 1 Files : 4125 3 4122 0 0 1 Bytes : 59.96 m 632 59.95 m 0 0 802.6 k Times : 0:00:00 0:00:00 0:00:00 0:00:00 Ended : Monday, April 8, 2019 5:06:10 PM 

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

В этом примере здесь обнаружены различия:

  1. * EXTRA Dir : дополнительный каталог существует в месте назначения, но не в источнике.
  2. * EXTRA File : дополнительный файл существует в месте назначения, но не в источнике.
  3. Старее : этот файл старше по сравнению с тем, что находится в месте назначения.
  4. Новее : этот файл новее по сравнению с тем, что находится в месте назначения.
  5. Новый файл : этот файл не существует в месте назначения. Это также называется Lonely файл

Полный список классификаций файлов RoboCopy:

 ----------- ----------- ---------------- ------------ --- ------------- ------------ Classifi_ существует в существует в источнике / Источнике Источнике / Источнике Источника / Месте назначения Источнику Файл назначения Времена Атрибуты Размер файла ----------- ----------- ---------------- ------------ --- ------------- ------------ Более новый Да Да Src> dest n / an / a Старше Да Да Src <dest n / an / a Новый Да Нет n / an / an / a Дополнительно Нет Да n / an / an / a Изменено Да Да Равно Различно н / д Одинаково Да Да Равно Равно Равно Изменено Да Да Да Равно равно Различно Несоответствие Да (файл) Да (каталог) n / an / an / a ----------- ----------- ---------------- ------ --------- ------------- ------------ 

Примечание. Определяемый файл определяется как файл, существующий как в источнике, так и в месте назначения, с идентичным размером и отметкой времени, но с разными настройками атрибута.

Robocopy - это удивительный инструмент для сравнения и синхронизации файлов в двух папках (вместе с подпапками нескольких уровней) и перечисления различий в файле журнала.

Синхронизировать папки с помощью Robocopy

Чтобы синхронизировать папки ( только из левой → правой папки) с RoboCopy, используйте тот же синтаксис командной строки, который мы использовали ранее для сравнения папок, но на этот раз без параметра /L (только для списка).

RoboCopy выполняет одностороннюю синхронизацию (из левой → правой папки)

Режим зеркального копирования ( /MIR ) в RoboCopy похож на функцию « Эхо » в Microsoft SyncToy. Помните, что RoboCopy выполняет только левую → правую синхронизацию, а НЕ двустороннюю синхронизацию.

Важно отметить, что ключ /MIR также удаляет все дополнительные файлы и каталоги в дереве папок назначения. «Дополнительные» файлы / папки - это элементы, присутствующие в месте назначения, но не присутствующие в исходном пути. Команда /MIR (зеркало) гарантирует, что структура папки назначения (и файлы) является точной копией источника.

Используйте следующий синтаксис командной строки для синхронизации элементов из левой → правой папки:

 robocopy source_folder destination_folder / MIR / MT 

Ключ /MT предназначен для создания многопоточного копирования для сверхбыстрой операции копирования. Это дополнительный переключатель, но очень полезный.

Состояние синхронизации выводится в консоли для каждого обработанного элемента, а статистика отображается в конце выходных данных.

Чтобы записать вывод в файл, используйте этот синтаксис:

 robocopy source_folder destination_folder / MIR / MT / TS /LOG:D:\Diff.txt 

Автоматизируйте команды, используя пакетный файл

Вы можете добавить все команды Robocopy в Блокнот и сохранить их как пакетный файл Windows (с расширением .bat ). Просто дважды щелкните по пакетному файлу, когда вы хотите синхронизировать указанные папки. Вы даже можете запускать пакетный файл с необходимыми интервалами, используя планировщик задач.


Метод 8: Сравните две папки с помощью контрольной суммы хэша файла с утилитой FCIV

Используя алгоритм криптографического хеширования - например, MD5, SHA-1, вы можете проверить, идентичны ли два файла или нет. Контрольная сумма - это хэш-значение, используемое для проверки целостности данных в файлах. Это своего рода подпись для файла.

Средство проверки целостности контрольной суммы файлов Microsoft (FCIV) - это утилита командной строки, которая вычисляет криптографические хеши MD5 или SHA1 для файлов. Вы можете вывести список файлов вместе с их хэшами MD5 или SHA1 в базу данных XML, а затем сравнить файлы в целевой папке с хешами, хранящимися в файле базы данных XML.

Этот метод особенно полезен после того, как вы использовали один из вышеперечисленных методов - например, Robocopy или WinDiff для синхронизации двух папок и хотите проверить целостность каждого файла назначения, сравнивая хэш / контрольные суммы файла с исходным местоположением.

Сценарий:

Давайте сравним содержимое следующих папок рекурсивно с использованием FCIV:

 D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content \ uploads 

Загрузите Microsoft File Checksum Integrity Verifier из официального центра загрузки Microsoft и распакуйте fciv.exe в папку, например d:\tools . Затем выполните один из этих методов:

Опция 1

  1. Откройте окно командной строки и используйте этот синтаксис командной строки:
     d: \ tools \ fciv.exe -r -add "D: \ Websites \ Winhelponline \ blog \ wp-content \ uploads" -bp "D: \ Websites \ Winhelponline \ blog \ wp-content" -sha1 -xml d: \ hashdb.xml 

    Приведенная выше командная строка рекурсивно вычисляет хэш SHA1 для каждого файла и выводит имена файлов и соответствующие хеши в файл hashdb.xml именем hashdb.xml .

    Параметр -bp используется для указания базового пути для удаления из полного имени пути. Это гарантирует, что базовый путь не будет включен в вывод XML, так что вы можете сравнить элементы в пути к папке назначения, имеющие точно такую ​​же структуру папок.

    Вот как будет выглядеть содержимое файла XML:

  2. Теперь в окне командной строки перейдите в папку назначения, выполнив следующую команду:
     cd / d "E: \ RameshPC-синхронизированное резервное копирование \ Websites \ Winhelponline \ blog \ wp-content" 
  3. Затем выполните следующую команду и нажмите клавишу ВВОД:
     d: \ tools \ fciv.exe -v -sha1 -xml D: \ hashdb.xml 

    Приведенная выше команда проверяет ваши файлы назначения по контрольным суммам, которые вы hashdb.xml ранее в файле XML hashdb.xml

    На выходе отображается список измененных файлов (на основе контрольной суммы хэша) и список отсутствующих файлов (в месте назначения):

    Вот пример вывода.

     Начальная проверка контрольных сумм: дата / время. Список измененных файлов: ----------------------- uploads \ 2019 \ 05 \ w10-extended-search-settings.png Хеш: 8dac0a4400d2b700f81bf70c189e49eb6a620a2f Это должно быть: cc2a1523ef070dc2e498dbf5f8cf5edac1b6900d Невозможно загрузить хеш-файл \ 2019 \ 05 \ windiff-header.png Ошибка не найдена. Msg: ошибка системы: Код ошибки: 2 Невозможно хэшировать загрузки файла \ 2019 \ 05 \ windows-store-error-0x800706d9.png Ошибка msg: системе не удается найти указанный файл. Код ошибки: 2 загрузки \ 2019 \ 05 \ w10-extended-search-settings.png Хеш-код: 8dac0a4400d2b700f81bf70c189e49eb6a620a2f Это должно быть: cc2a1523ef070dc2e498dbf5f8cf5edac1b6900d Заголовок ошибки: не удается найти файл 201. \ msgstr \ не удается найти файл 201. \ msgstr \ не удается найти файл 201. Не удается найти файл 2019: файл не найден указанный файл Код ошибки: 2 Невозможно хэшировать загрузки файла \ 2019 \ 05 \ windows-store-error-0x800706d9.png Ошибка msg: системе не удается найти указанный файл. Код ошибки: 2 Окончание проверки: отметка времени 

Вышеуказанный метод очень полезен для проверки целостности соответствующих файлов в папке назначения. Но он не показывает список дополнительных файлов в месте назначения. That's where Option 2 below has an additional advantage.

Option 2

Rather than outputting the files list and checksums to an XML database, you can output the items in the source and destination to separate text files. Then the text files can be compared using WinDiff, WinMerge, DiffChecker.com or WinCompare utility.

Run these commands from a Command Prompt window.

 fciv -r "D:\Websites\Winhelponline\blog\wp-content\uploads" -bp "D:\Websites\Winhelponline\blog\wp-content" >d:\source.txt fciv -r "e:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads" -bp "e:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content" >d:\destination.txt 

Then, compare the two files source.txt and destination.txt using a file compare tool like WinDiff, WinMerge, DiffChecker.com, DiffMerge or WinCompare.

You'll see the list of missing files, extra files and modified files (based on the computed checksum) in the two folder locations.

I synchronized the two folders using RoboCopy and then compared the folders again using FCIV hash checksum. They're now identical!


Method 9: Compare Two Folders Using PowerShell

Using PowerShell you can recursively compare two folders easily.

Start PowerShell. Copy the following snippet and paste them all in the PowerShell window, and press ENTER

Enter the source folder and destination folders, replacing the source_folder_path and dest_folder_path placeholders respectively.

 $Folder1 = "source_folder_path" $Folder2 = "dest_folder_path" function Get-Directories ($path) { $PathLength = $path.length Get-ChildItem $path -Recurse | % { Add-Member -InputObject $_ -MemberType NoteProperty -Name RelativePath -Value $_.FullName.substring($PathLength+1) $_ } } Compare-Object (Get-Directories $Folder1) (Get-Directories $Folder2) -Property RelativePath | Sort RelativePath, Name -desc 

You'll see an output like this:

The side indicator <= means the file or folder exists only in the source. ie, missing in the destination.

The side indicator => means the file or folder exists only in the destination. ie, missing in the source.

Editor's note: The above code compares only the file names without matching any other details like size, date modified, etc. PowerShell has the capability to do a hash-comparison of items in two folders and output the results, which is described in the next method.

Sync folders

With some 10 additional lines of PowerShell code, you can even copy the different or missing files from source → destination, or vice versa. For more information, see Sync Files And Folders With PowerShell.


Method 10: Compare Two Folders Using PowerShell with File Hash Checksum

To compare files in two locations using file hash checksum, you can use PowerShell. PowerShell by default uses the SHA-256 algorithm, which you can change using the -Algorithm parameter. As said earlier, hash checksum is a kind of signature for a file which is unique.

In this example, we're going to compare the following folders:

 D:\Websites\Winhelponline\blog\wp-content\uploads\2019 E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019 

Use the following command-line to compute the hash for files in the source folder and output the results to source.txt file.

 Get-ChildItem 'D:\Websites\Winhelponline\blog\wp-content\uploads\2019' -Recurse | Get-FileHash | Select Path, Hash | export-csv d:\source.txt -Delimiter "`t" -NoTypeInformation 

Then, run the following command to remove the base paths from the file.

 (gc -path d:\source.txt -raw) -replace 'D:\\Websites\\Winhelponline\\blog\\wp-content\\', '' | Out-File d:\source.txt 

The list of file names (with relative path) along with the SHA-256 hashes are outputted to the source.txt file.

Similarly, run the commands for computing hashes for items in the destination, and then remove the base paths from destinations.txt :

 Get-ChildItem 'E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019' -Recurse | Get-FileHash | Select Path, Hash | export-csv d:\destination.txt -Delimiter "`t" -NoTypeInformation 
 (gc -path d:\destination.txt -raw) -replace 'E:\\RameshPC-Synced Backup\\Websites\\Winhelponline\\blog\\wp-content\\', '' | Out-File d:\destination.txt 

The above command computes the hash for each file in the destination folder recursively, and the output is written to d:\destination.txt

Compare using PowerShell

Next, compare the files using the following PowerShell command:

 Compare-Object -ReferenceObject $(Get-Content d:\source.txt) -DifferenceObject $(Get-Content d:\destination.txt) | fl 

It shows the different files and the location of each item denoted by the symbols <= or => for left folder and right folder respectively. The output also shows extra files in the source as well as the destination.

Compare using WinDiff

Alternately, you can run WinDiff and compare d:\source.txt and d:\destination.txt . You can use the following WinDiff command-line to compare the files:

 d:\Tools\windiff.exe d:\source.txt d:\destination.txt 

The WinDiff output shows differences highlighted in yellow/red. From the above screenshot, we can infer that the file 0xc1900101-error.png is different. Also, the destination folder or the right folder (denoted by the symbols !> in WinDiff) has an extra file named 1h.txt .

PowerShell supports many hash algorithms and so it has an advantage over the FCIV.exe tool. The Microsoft FCIV tool supports MD5 and SHA-1 algorithms only, which are outdated and can be ineffective due to collision issues, albeit very rarely. SHA-1 collision means that two files have identical SHA-1 hashes but different content. So, SHA-256 may be the preferred algorithm for file or folder comparison in a production environment.


Note that the command-line methods 11 & 12 below only help you compare the structure of two directories along with files. They don't compare file sizes or modified date to know which is the newer. They only do a plain comparison based on file names and you wouldn't know if one of the destination files becomes corrupt during a copy operation. In a production environment, you may need to use other tools or methods if you need to verify the integrity of your files in the source and destination folders, to make sure they are the exact same copies.

Method 11: List the folder structure using TREE command

To compare two directories along with sub-directories, the good old TREE command comes extremely handy. Suppose you want to compare the two folders (including file names) D:\SOURCE and D:\DEST, follow these steps:

  1. Open a Command Prompt window.
  2. Type these commands:
     TREE D:\SOURCE /A /F >D:\SOURCE.TXT 
     TREE D:\DEST /A /F >D:\DEST.TXT 

    This outputs each of the command results to separate text files in your D:\ drive's root directory. The text files will have your directory structure in a tree format, which makes it easy for comparison work.

    Quick Tip: To compare only the directories, remove the /F flag.
  3. Next, fire up your text comparison utility like WinDiff, WinMerge or DiffMerge. Alternately, you can compare the two text files online via diffchecker.com.
  4. Go to DiffChecker.com and paste the contents of d:\source.txt in one column, and D:\DEST.txt in another column. Click Find differences .

    Directory comparison

    Directory and files comparison

Method 12: List folder structure using the DIR Command

To compare the contents of two directories, another command-line you can use is the DIR command.

Use the following command-line syntax to generate the list of files in a directory recursively. You can then compare it using a compare tool or DiffMerge.

 DIR D:\SOURCE /S /AD /B >D:\SOURCE.TXT 
 DIR D:\DEST /S /AD /B >D:\DEST.TXT 
Quick Tip: To include files along with the directory listing, remove the “/AD” flag.

There is one problem though, when using the DIR command. It lists full directory and file paths in the output, as below:

  1. D:\Source\Apr\Week1
  2. D:\Source\Apr\Week2
  3. D:\DEST\Apr\Week1
  4. D:\DEST\Apr\Week2

In that case, you'll need to remove the comparison base paths D:\SOURCE\ and D:\DEST\ in the respective text files by editing them with Notepad. To bulk replace text, use the Replace option in Notepad and remove every occurrence of the base path.

Once done, save the files and compare the contents online via DiffChecker or using an offline text-comparison tool like WinDiff or WinMerge.

Directory comparison – List generated using DIR instead of TREE

I bet you'll find directory contents output generated using TREE to be much easier and far neater than DIR .


Hope the above methods helped you quickly compare the contents of two folders recursively, identify missing and modified files and reconcile differences.

Let's know your comments!

ПОХОЖИЕ СТАТЬИ