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

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

сравнить две папки и список файлов

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

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

Способы сравнения двух папок:

Методы GUI:

  1. Microsoft WinDiff
    • Синхронизировать папки с помощью WinDiff
  2. WinMerge
    • Синхронизировать папки с помощью WinMerge
  3. Total Commander
    • Синхронизировать папки с помощью TotalCommander
  4. FreeFileSync
    • Синхронизировать папки с помощью FreeFileSync
    • сравнить Синхронизировать локальную папку Vs. Папка FTP рекурсивно
  5. DSynchronize
    • Синхронизировать папки автоматически в реальное время
  6. Утилита HashMyFiles (сравнение контрольной суммы хэша)

Методы командной строки:

  1. Robocopy
    • Синхронизировать папки с помощью Robocopy
  2. Утилита FCIV (сравнение контрольной суммы хеша)
  3. PowerShell
  4. PowerShell (со сравнением контрольной суммы хэша)
  5. Составьте список файлов и папок с помощью команды TREE и сравните их
  6. Перечислите файлы и папки с помощью команды DIR и сравните их

Выбор редактора:

  • Для сравнения папок: WinDiff.
  • Для синхронизации папок: FreeFileSync для GUI Робокопия CLI методом.

Сравните содержимое двух папок с помощью 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. Если вы хотите рекурсивно сравнивать файлы в этих папках, включите Включить подкаталоги флажок.
    сравнить содержимое двух папок в windows

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

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

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

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

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

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

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

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

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

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

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

-- D:\Websites\Winhelponline\blog\wp-content\uploads\2019 : E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019 -- includes left-only,right-only,differing files
.\accesschk.exe	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\compare-folders.txt	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\fta-1803-w10.txt	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\ssh-commands-useful.txt	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\05\dell-supportassist.png	only in D:\Websites\Winhelponline\blog\wp-content\uploads\2019
.\05\disable-theme-sync-ramesh.png	different (E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019 is more recent)
.\05\file-explorer-not-highlight-files.png	only in D:\Websites\Winhelponline\blog\wp-content\uploads\2019
.\05\firefox-forget-about-this-site-4.png	different (E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019 is more recent)
.\05\msconfig-disable-services-non-microsoft.png	only in D:\Websites\Winhelponline\blog\wp-content\uploads\2019
.\05\windows-store-error-0x800706d9.png	only in D:\Websites\Winhelponline\blog\wp-content\uploads\2019
.\06\notepad-bing-search.png	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\06\rundll32-refresh-commands.txt	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\06\archives\404chk.vbs	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\06\archives\actxprxy-missing-issues.txt	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\06\archives\apps.png	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\06\archives\articles.vbs	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
.\06\archives\bash-sh.vbs	only in E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads\2019
-- 17 files listed

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

сравнить содержимое двух папок в windows - windiff

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

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

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

Usage:
windiff [options] path1 [path2]
Options:
-D	Compare one directory only.
-F[flags] savefile	Save composite file to 'savefile'.  The 'flags' may consist of one or more of I (identical), L (left), R (right), F (moved leFt), G (moved riGht), S (Similar left), A (similiAr right), X (exit after saving list).
(e.g. -FLF saves list of Left or moved-leFt lines).
-I file	Reads list of files to compare, from the specified input file.  Each line can contain one or two filenames, space delimited (with quoting, if filenames contain spaces).  Use "-" as the filename to read from stdin.  If a line contains only one filename, the file is compared to itself.
-N name	NET SEND notification to 'name' at end of comparison.
-O	Outline view (no automatic expansion).
-P	Perverse comparison: breaks lines on punctuation.
-S[flags] savefile	Save list of files to 'savefile'.  The 'flags' may consist of one or more of S (same), L (left), R (right), D (different), X (exit after saving list).
(e.g. -SLD saves list of Left or Different files).
-T	Compare whole subtree.

Чтобы сохранить отчет о сравнении в файл, используя -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 identical.txt c:\folder1 d:\folder2
windiff -SDX different.txt c:\folder1 d:\folder2
windiff -SLX left-only.txt c:\folder1 d:\folder2
windiff -SRX right-only.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. Uncheck Идентичные файлы, и нажмите ОК.

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

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

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

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

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

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

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

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

  1. Запустите WinMerge. В меню Файл выберите открытоwinmerge сравнить 1-я папка 2-я папка открыта
  2. Просмотрите, чтобы выбрать 1-я папка а также 2-я папка для сравнения.
  3. Убедитесь, что фильтр установлен на *.* так что все файлы сравниваются. По умолчанию включена опция «Включить подпапки» (рекурсивное сравнение). Если вы хотите сравнивать файлы только в каталоге верхнего уровня, снимите этот флажок.
  4. щелчок сравнить

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

  5. От инструменты меню, нажмите Настроить столбцы …. Выберите нужные столбцы, такие как Left size, Right size, Left date, Right date из многочисленных других опций столбца.
    колонны winmerge
  6. Расширить «Папки разные», Дважды щелкнув по нему. Он показывает список файлов, которые отличаются: «только слева», «только справа», а также идентичные файлы.
    Winmerge сравнить результаты расширенЗаметка: Вы можете скрыть идентичные файлы и папки, сняв флажок «Показать идентичные элементы» в меню «Вид» в WinMerge.
    варианты просмотра winmerge

Преимущество использования WinMerge состоит в том, что он предлагает пять различных методов сравнения файлов на выбор:

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

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

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

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

winmerge сравнивает папки и синхронизирует

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

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

winmerge сравнивает папки и синхронизирует

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

сравнить и синхронизировать локальную папку и FTP с помощью freefillesync

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

Когда вы закончите, вы вернетесь в окно сравнения.

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

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

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

сравнить и синхронизировать локальную папку и FTP с помощью freefillesync

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

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

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

  1. щелчок Сохранить как пакетную работу … вариант из меню Файл.

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

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

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

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

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

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

сравните содержимое двух папок - Total Commander

  1. Запустите Total Commander и выберите левую папку и правую папку для сравнения.
  2. От команды меню, нажмите Синхронизировать каталоги …

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

    сравните содержимое двух папок - Total Commander

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

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

    сравните содержимое двух папок - Total Commander

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

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

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

  4. В разделе Показать отключить Равные файлы (обозначается = ), и включите остальные три кнопки.
  5. Включить одиночный разряд а также Дубликаты опции.
  6. нажмите сравнить кнопка
    сравните содержимое двух папок - Total Commander

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. В окне сравнения выберите файлы, которые вы хотите скопировать. Это можно сделать, установив флажок между двумя столбцами сравнения или выбрав один из параметров в контекстном меню.

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

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

    сравните содержимое двух папок - Total Commander

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

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

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

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

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

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

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

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

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

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

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

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

    синхронизировать папки в режиме реального времени - dsync

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

  3. Включить Мониторинг подпапок флажок для синхронизации папок рекурсивно.

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

синхронизировать папки в режиме реального времени - dsync

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

синхронизировать папки в режиме реального времени - dsync

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

синхронизировать папки в режиме реального времени - dsync

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

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

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

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

/START = Начать синхронизацию с последними сохраненными параметрами.
/STARTJOB "JobName" = Начать синхронизацию с выбранными параметрами задания).
/MINIMIZE = Запускается свернутым в панели трея.
/HIDDEN = Не отображать значок в панели задач.
/NOSECURITYCHECK = Не выполнять проверку безопасности перед синхронизацией.
/NOMONITORCHECK = Не проверяйте разрешение монитора.
/AUTOREALTIME = Запускается свернутым, сделать стандартную синхронизацию и активировать RealTime.
/SOMEFILE.INI = Начинает использовать выбранный файл INI.

Название работы можно настроить, нажав на КАРЬЕРА Кнопка в верхней части главного окна программы.

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

"D:\dsynchronize\DSynchronize.exe" /STARTJOB "Uploads" /MINIMIZE

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

"D:\dsynchronize\DSynchronize.exe" /STARTJOB "Uploads" /AUTOREALTIME

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

Это оно!

Метод 6: Сравните две папки с помощью утилиты HashMyFiles с помощью контрольной суммы File Hash

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

получить хеш файла через контекстное меню - hashmyfiles

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

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

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

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

Следуй этим шагам для генерации файловых хешей с использованием HashMyFiles и сравнения их:

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

    сравнить файлы в двух папках - hashmyfiles

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

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

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

    сравнить файлы в двух папках - hashmyfiles

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

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

Метод 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
and
E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads
  1. Откройте окно командной строки.
  2. Выполните следующую команду и нажмите клавишу ВВОД:
    robocopy "D:\Websites\Winhelponline\blog\wp-content\uploads" "E:\RameshPC-Synced Backup\Websites\Winhelponline\blog\wp-content\uploads" /L /TS /MIR /LOG:D:\Diff.txt

    папки различий в списке команд robocopy

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

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

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

  • /L :: Только список — не копируйте, не ставьте метки времени и не удаляйте файлы. Эта опция используется только для целей регистрации; для пробежки.
  • /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

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

папки различий в списке файлов журнала robocopy

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

  1. * EXTRA Dir: Дополнительный каталог существует в месте назначения, но не в источнике.
  2. * ДОПОЛНИТЕЛЬНЫЙ файл: Дополнительный файл существует в месте назначения, но не в источнике.
  3. Старшая: Этот файл старше по сравнению с файлом в месте назначения.
  4. Новее: Этот файл более новый по сравнению с тем, который находится в месте назначения.
  5. Новый файл: Этот файл не существует в пункте назначения. Это также называется Lonely файл

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

-- -- -  -
Classifi_   Exists In   Exists In        Source/Dest     Source/Dest   Source/Dest
cation      Source      Destination      File Times      File Sizes    Attributes
-- -- -  -
Newer       Yes         Yes              Src > dest      n/a           n/a
Older       Yes         Yes              Src < dest      n/a           n/a
New         Yes         No               n/a             n/a           n/a
Extra       No          Yes              n/a             n/a           n/a
Changed     Yes         Yes              Equal           Different     n/a
Same        Yes         Yes              Equal           Equal         Equal
Tweaked     Yes         Yes              Equal           Equal         Different
Mismatched  Yes (file)  Yes (directory)  n/a             n/a           n/a
-- -- -  -

Заметка: Tweaked Файл определяется как файл, который существует как в источнике, так и в месте назначения, с одинаковым размером и отметкой времени, но с разными настройками атрибута.

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

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

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

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

Режим зеркального копирования RoboCopy (/MIR) похож на «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 sync mir

сравнить содержимое двух папок - robocopy sync mir

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

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

сравнить содержимое двух папок - robocopy sync mir

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

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

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

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

Сценарий:

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

D:\Websites\Winhelponline\blog\wp-content\uploads
E:\RameshPC-Synced Backup\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

    сравнить содержимое папки - контрольная сумма fciv

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

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

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

    сравнить содержимое папки - контрольная сумма fciv

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

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

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

    сравнить содержимое папки - контрольная сумма fciv

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

    Starting checksums verification : date/timestamp
    List of modified files:
    --
    uploads\2019\05\w10-enhanced-search-settings.png
    Hash is         : 8dac0a4400d2b700f81bf70c189e49eb6a620a2f
    It should be    : cc2a1523ef070dc2e498dbf5f8cf5edac1b6900d
    Unable to Hash file uploads\2019\05\windiff-header.png
    Error msg  : The system cannot find the file specified.
    Error code : 2
    Unable to Hash file uploads\2019\05\windows-store-error-0x800706d9.png
    Error msg  : The system cannot find the file specified.
    Error code : 2
    uploads\2019\05\w10-enhanced-search-settings.png
    Hash is         : 8dac0a4400d2b700f81bf70c189e49eb6a620a2f
    It should be    : cc2a1523ef070dc2e498dbf5f8cf5edac1b6900d
    Unable to Hash file uploads\2019\05\windiff-header.png
    Error msg  : The system cannot find the file specified.
    Error code : 2
    Unable to Hash file uploads\2019\05\windows-store-error-0x800706d9.png
    Error msg  : The system cannot find the file specified.
    Error code : 2
    End Verification : timestamp

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

Вариант 2

Вместо вывода списка файлов и контрольных сумм в базу данных XML вы можете вывести элементы в исходном и целевом элементах в отдельные текстовые файлы. Затем текстовые файлы можно сравнить с помощью утилиты WinDiff, WinMerge, DiffChecker.com или WinCompare.

Запустите эти команды из окна командной строки.

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

сравнить содержимое папки - контрольная сумма fciv

Затем сравните два файла source.txt а также destination.txt используя инструмент сравнения файлов, такой как WinDiff, WinMerge, DiffChecker.com, DiffMerge или WinCompare.

сравнить содержимое папки - контрольная сумма fciv

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

Я синхронизировал две папки, используя RoboCopy, а затем снова сравнил папки, используя контрольную сумму хэша FCIV. Теперь они идентичны!

сравнить содержимое папки - контрольная сумма fciv

Метод 9: Сравните две папки с помощью PowerShell

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

Запустите PowerShell. Скопируйте следующий фрагмент и вставьте их все в окно PowerShell и нажмите клавишу ВВОД.

Введите исходную и целевую папки, заменив source_folder_path а также dest_folder_path заполнители соответственно.

$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

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

Вы увидите такой вывод:

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

Боковой индикатор <= означает, что файл или папка существует только в источнике. то есть отсутствует в пункте назначения.
Боковой индикатор => означает, что файл или папка существует только в месте назначения. то есть отсутствует в источнике.

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

Приблизительно с 10 дополнительными строками кода PowerShell вы можете даже скопировать разные или отсутствующие файлы из источника → назначения или наоборот. Для получения дополнительной информации см. Синхронизация файлов и папок с PowerShell.

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

Чтобы сравнить файлы в двух местах с помощью контрольной суммы хэша, вы можете использовать PowerShell. PowerShell по умолчанию использует SHA-256 алгоритм, который вы можете изменить с помощью -Algorithm параметр. Как уже говорилось ранее, контрольная сумма хеша является своего рода подписью для файла, который является уникальным.

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

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

Используйте следующую командную строку, чтобы вычислить хэш для файлов в исходной папке и вывести результаты в source.txt файл.

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

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

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

Список имен файлов (с относительным путем) вместе с хешами SHA-256 выводятся на source.txt файл.

сравнивать папки с помощью хэша powershell

Аналогично, запустите команды для вычисления хэшей для элементов в назначения, а затем удалить базовые пути из 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

Вышеприведенная команда рекурсивно вычисляет хэш для каждого файла в папке назначения, а выходные данные записываются в d:\destination.txt

Сравните с помощью PowerShell

Затем сравните файлы с помощью следующей команды PowerShell:

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

сравнивать папки с помощью хэша powershell

Он показывает различные файлы и расположение каждого элемента, обозначенного символами <= или => для левой папки и правой папки соответственно. Вывод также показывает дополнительные файлы в источнике, а также в месте назначения.

Сравните с помощью WinDiff

Кроме того, вы можете запустить WinDiff и сравнить d:\source.txt а также d:\destination.txt, Вы можете использовать следующую командную строку WinDiff для сравнения файлов:

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

сравнивать папки с помощью хэша powershell

Выход WinDiff показывает различия, выделенные желтым / красным. Из приведенного выше снимка экрана мы можем сделать вывод, что файл 0xc1900101-error.png отличается. Кроме того, папка назначения или правая папка (обозначается символами !> в WinDiff) имеет дополнительный файл названный 1h.txt,

PowerShell поддерживает множество алгоритмов хеширования и поэтому имеет преимущество перед инструментом FCIV.exe. Инструмент Microsoft FCIV поддерживает только алгоритмы MD5 и SHA-1, которые устарели и могут быть неэффективными из-за проблем коллизий, хотя и очень редко. Столкновение SHA-1 означает, что два файла имеют идентичные хэши SHA-1, но разный контент. Таким образом, SHA-256 может быть предпочтительным алгоритмом сравнения файлов или папок в производственной среде.

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

Способ 11: список структуры папок с помощью команды TREE

Для сравнения двух каталогов вместе с подкаталогами, старый добрый TREE Команда приходит очень удобно. Предположим, вы хотите сравнить две папки (включая имена файлов) D: \ SOURCE и D: \ DEST, выполните следующие действия:

  1. Откройте окно командной строки.
  2. Введите эти команды:
    TREE  D:\SOURCE /A /F >D:\SOURCE.TXT
    TREE  D:\DEST /A /F >D:\DEST.TXT

    Это выводит каждый из результатов команды в отдельные текстовые файлы в вашем D:\ корневой каталог диска. Текстовые файлы будут иметь структуру каталогов в древовидном формате, что облегчает сравнение.

    Совет. Чтобы сравнить только каталоги, удалите /F флаг.

  3. Затем запустите вашу утилиту сравнения текста, такую ​​как WinDiff, WinMerge или DiffMerge. Кроме того, вы можете сравнить два текстовых файла онлайн через diffchecker.com.
  4. Перейдите на DiffChecker.com и вставьте содержимое d: \ source.txt в один столбец и D: \ DEST.txt в другой столбец. Нажмите Найти различия.
    сравнить две папки и список файловСравнение каталогов

    сравнить две папки и список файловСравнение каталогов и файлов

Метод 12: Список структуры папок с помощью команды DIR

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

Используйте следующий синтаксис командной строки для рекурсивного создания списка файлов в каталоге. Затем вы можете сравнить его с помощью инструмента сравнения или DiffMerge.

DIR D:\SOURCE /S /AD /B >D:\SOURCE.TXT
DIR D:\DEST /S /AD /B >D:\DEST.TXT

Совет: чтобы включить файлы вместе со списком каталогов, уберите флаг «/ AD».

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

  1. D: \ Source \ Апрель \ Week1
  2. D: \ Source \ Апрель \ Week2
  3. D: \ DEST \ Апрель \ Week1
  4. D: \ DEST \ Апрель \ Week2

В этом случае вам нужно удалить базовые пути сравнения D:\SOURCE\ а также D:\DEST\ в соответствующие текстовые файлы, редактируя их с помощью блокнота. Чтобы выполнить массовую замену текста, используйте параметр «Заменить» в блокноте и удалите все вхождения базового пути.

После этого сохраните файлы и сравните их содержимое онлайн с помощью DiffChecker или с помощью автономного инструмента для сравнения текста, такого как WinDiff или WinMerge.

сравнить две папки и список файловСравнение каталогов - список генерируется с использованием DIR вместо TREE

Бьюсь об заклад, вы найдете вывод содержимого каталога, созданный с помощью ДЕРЕВО быть намного легче и намного аккуратнее, чем DIR.

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

Давайте знать ваши комментарии!

Ссылка на основную публикацию
Adblock
detector