Предположим, вы создали задачу резервного копирования XCOPY, SyncToy или любой другой инструмент для зеркального копирования определенного каталога в другое место. Если вы используете Microsoft SyncToy, особенно в Windows 10, возможно, что иногда файлы или папки могут отсутствовать в месте назначения или в папке назначения есть дополнительные файлы или папки, которых нет в исходной папке.
В этой статье рассказывается, как сравнить структуру каталогов (вместе с файлами) в двух разных путях каталогов, чтобы убедиться, что у вас есть точная реплика или зеркальная копия источника. Некоторые из приведенных ниже методов также обсуждают, как синхронизировать элементы в двух папках после сравнения.
В этой статье обсуждаются 13 методов сравнения папок (для Windows). Выберите тот, который вам больше всего подходит. Если вам нужно проверить целостность файла после синхронизации, воспользуйтесь одним из следующих контрольная сумма хеша перечислены процедуры проверки.
Способы сравнения двух папок:
Методы графического интерфейса:
- Microsoft WinDiff
- WinMerge
- Total Commander
- FreeFileSync
- SyncFolders
- Синхронизировать папки с SyncFolders (поддерживает проверку контрольной суммы хэша)
- DSynchronize
- Утилита HashMyFiles (сравнение контрольной суммы хэша)
Методы командной строки:
- Робокопия
- Утилита FCIV (сравнение контрольной суммы хэша)
- PowerShell
- PowerShell (со сравнением контрольной суммы хэша)
- Составьте список файлов и папок с помощью команды ДЕРЕВО и сравните их
- Составьте список файлов и папок с помощью команды DIR и сравните их
Выбор редактора:
- Для сравнения папок: WinDiff (из-за простого пользовательского интерфейса).
- Для синхронизации папок: FreeFileSync для графического интерфейса и Робокопия 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:
- Запустите Windiff.exe.
- В меню 'Файл' выберите 'Сравнить каталоги'.
- В диалоговом окне «Выбор каталогов» введите имена двух папок, которые вы хотите сравнить, в полях Dir1 и Dir2. Если вы хотите рекурсивно сравнивать файлы в этих папках, включите Включить подкаталоги флажок.
В результатах или в окне схемы по умолчанию отображаются как идентичные файлы, так и различия. Вы можете скрыть идентичные файлы, отключив Показать идентичные файлы из меню 'Параметры'.
Как видите, WinDiff не просто сравнивает имена файлов, но также сравнивает содержимое файлов в обоих местах и выделяет изменения, если содержимое файла отличается.
Двойной щелчок по «другому» элементу открывает окно сравнения с цветовым кодированием. Цветовая кодировка результатов показывает, в чем заключаются различия файлов.
WinDiff может выполнять сравнение ASCII и двоичного кода. Это означает, что WinDiff не полагается на дату изменения, а сравнивает фактическое содержимое файлов.
Например, я изменил символ в текстовом файле в папке назначения (Правая папка). Я заменил восклицательный знак двоеточием, и размер файла точно такой же (1127 байт) в обоих местах. WinDiff подхватил и показал, что файлы разные.
Чтобы сохранить различия в сравнении каталогов в файл, щелкните Сохранить список файлов в меню 'Файл'. Введите имя файла с полным путем без двойных кавычек.
Снимите отметку Идентичные файлы и Включить контрольные суммы параметры и нажмите кнопку ОК. Выходной файл будет выглядеть так:
- D: Websites Winhelponline blog wp-content uploads 2019: E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019 - включает только левое, только правое , разные файлы. accesschk.exe только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019. compare-folder.txt только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019. Fta-1803-w10.txt только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019. Ssh-commands-полезно .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-Synced Backup Websites Winhelponline blog wp-content uploads 2019 является более поздним). 05 file-explorer- not-highlight-files.png только в D: Websites Winhelponline blog wp-content uploads 2019. 05 firefox-Forgot-about-this-site-4.png Difference 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-Synced Backup Websites Winhelponline blog wp-content uploads 2019. 06 rundll32-refresh-commands.txt только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019. 06 archives 404chk.vbs только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019. 06 archives actxprxy-missing -issues.txt только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019. 06 archives apps.png только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019. 06 archives article.vbs только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content upl oads 2019. 06 archives bash-sh.vbs только в E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019 - 17 файлов в списке
Поскольку выходной файл имеет формат с разделителями табуляции, вы должны иметь возможность импортировать в Microsoft Office Excel или Google Таблицы без труда.пожаловаться на это объявление
Обратите внимание, что вы можете запустить WinDiff напрямую, указав пути источника и назначения в качестве дополнительных переключателей для сравнения каталогов. Например, запуск windiff.exe 'c: источник' 'd: назначение'
запустит инструмент и сразу же сравнит пути к этим двум папкам.
Параметры командной строки WinDiff
Вот полный список Параметры командной строки WinDiff .
Использование: windiff [параметры] путь1 [путь2] Параметры: -D Сравнить только один каталог. -F [flags] savefile Сохранить составной файл в 'savefile'. «Флаги» могут состоять из одного или нескольких из I (идентичный), L (левый), R (правый), F (перемещенный влево), G (перемещенный вправо), S (аналогичный влево), A (аналогичный вправо), X (выход после сохранения списка). (например, -FLF сохраняет список строк влево или влево). -I файл Читает список файлов для сравнения из указанного входного файла. Каждая строка может содержать одно или два имени файла, разделенных пробелами (в кавычках, если имена файлов содержат пробелы). Используйте '-' в качестве имени файла для чтения из стандартного ввода. Если строка содержит только одно имя файла, файл сравнивается с самим собой. -N name Уведомление NET SEND для 'name' в конце сравнения. -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 после сохранения отчета сравнения, добавьте Икс
переключатель, как показано ниже:
Сохраните список файлов, доступных только для правых, в 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 идентичный.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) место. Для этого
- В меню Файл выберите Копировать файлы
- Введите путь к папке, в которую вы хотите скопировать отсутствующие / разные файлы.
Важный: Не заключайте путь к папке в двойные кавычки, даже если путь к папке содержит пробелы. WinDiff не сможет скопировать файлы, если вы добавите в путь двойные кавычки. - Выберите Копировать из местоположения (левое дерево в правое дерево или наоборот)
- Снимите отметку Идентичные файлы и нажмите ОК.
WinDiff теперь синхронизирует папку, рекурсивно копируя отсутствующие и измененные файлы в указанное место (слева → справа).
Несмотря на превосходное сравнение ASCII и двоичного кода, а также базовые возможности синхронизации, WinDiff часто недооценивается ИТ-специалистами. Это потому, что у него устаревший пользовательский интерфейс и нет поддержки Unicode. Но WinDiff достаточно для большинства из нас, особенно для тех, кто использует англоязычную ОС.
В базе знаний Microsoft есть статья о WinDiff под названием Как использовать утилиту Windiff.exe которую вы, возможно, захотите проверить.
Сравните содержимое двух папок с помощью WinMerge
Вот как сравнить две папки вместе с подпапками с помощью WinMerge.
WinMerge это инструмент с открытым исходным кодом для различения и объединения для Windows. Он может сравнивать как папки, так и файлы, отображая различия в визуальном текстовом формате, который легко понять и обработать. Давайте воспользуемся им для сравнения содержимого двух папок и их подпапок (т. Е. Рекурсивно).
- Запустите WinMerge. В меню Файл щелкните открыто
- Просмотрите, чтобы выбрать 1-я папка и 2-я папка для сравнения.
- Убедитесь, что фильтр установлен на
*. *
так что все файлы сравниваются. Параметр «Включить подпапки» (рекурсивное сравнение) включен по умолчанию. Если вы хотите сравнивать файлы только в каталоге верхнего уровня, снимите флажок. - Нажмите Сравнить WinMerge генерирует результаты сравнения папок, выделяя различия желтым цветом.
- Из инструменты меню, щелкните Настроить столбцы… . Выберите нужные столбцы, например
Левый размер
,Правильный размер
,Дата выхода
,Правильная дата
из множества других предоставленных вариантов столбцов.
- Разверните « Папки разные », Дважды щелкнув по ней. Он показывает список файлов, которые другой , ' осталось только ',' только правильно », А также файлы, идентичный .
Заметка: Вы можете скрыть идентичные файлы и папки, сняв флажок «Показать идентичные элементы» в меню «Просмотр» в WinMerge.
Преимущество использования WinMerge заключается в том, что он предлагает на выбор пять различных методов сравнения файлов:
- Полное содержание (по умолчанию): Полное сравнение файлов по содержанию, со всеми наворотами. Этот метод вызывает плагины и использует механизм Diffutils для полностью точного определения разностей и обнаружения перемещенных блоков. Это наиболее полный и рекомендуемый метод.
- Быстрое содержание: Упрощенное сравнение файлов по содержанию. Этот метод использует упрощенный код сравнения файлов, который пропускает плагины и обнаружение перемещенных блоков. Этот метод работает быстрее, чем Full Contents, поскольку он не загружает файлы. Его недостаток в том, что при сравнении не применяются линейные фильтры. Например, этот метод рассматривает файл как другой, даже если линейные фильтры настроены так, чтобы игнорировать все различия в файлах.
- Дата изменения: Сравнивает только даты модификации файлов, поэтому это намного быстрее, чем любой из методов содержимого. Но очевидно, что это так же точно, как и даты модификации.
- Дата и размер изменения: Аналогично дате изменения, но также проверяет размеры файлов, если даты совпадают.
- Размер: Сравнивает только размеры файлов, поэтому это быстро, но не так точно, как метод содержимого.
WinMerge поддерживает множество переключателей командной строки. Проверьте Руководство по WinMerge для всего списка поддерживаемых ключей командной строки.
Синхронизация папок с WinMerge
Если вы сняли флажок Показать идентичные предметы в меню «Просмотр» в WinMerge отображается только список измененных файлов, файлов только для левого и правого каналов. Легко синхронизировать элементы слева → справа или наоборот.
Все, что вам нужно сделать, это выбрать файлы (или выбрать все), щелкнуть выделение правой кнопкой мыши и нажать «Копировать». В подменю Копировать выберите один из вариантов:
- Слева направо: Скопируйте выбранные файлы из левой папки в правую.
- Осталось…: Скопируйте файлы из левой папки в другую.
- Справа налево: Скопируйте выбранные файлы из правой папки в левую.
- Прямо к … : Скопировать файлы из нужной папки в другую папку.
Метод 3: как сравнить файлы в двух папках с помощью FreeFileSync
FreeFileSync - это программное обеспечение с открытым исходным кодом для сравнения и синхронизации папок, которое создает резервные копии всех ваших важных файлов и управляет ими.
- Загрузите FreeFileSync и установите его.
- Чтобы сравнить папки по содержимому файла, а не по размеру файла или дате изменения, выберите Содержание файла в параметрах сравнения. Сравнение по размер файла однако будет намного быстрее и менее ресурсоемким.
- Выберите левую папку и правую папку.
- Нажми на Сравнить (содержимое файла) кнопка. Он рекурсивно сравнивает элементы в двух папках и показывает список новых и измененных файлов.
Идентичные файлы скрыты в выводе. По умолчанию он показывает файлы только для левого края, разные файлы и файлы только для правого, а параметры можно переключать с помощью кнопок в нижней части окна FreeFileSync.
Синхронизация папок с помощью FreeFileSync
FreeFileSync предлагает следующие параметры синхронизации, аналогичные Microsoft SyncToy.
- Двусторонняя синхронизация: Определите и примените изменения с обеих сторон. Удаление, перемещение и конфликты обнаруживаются с помощью базы данных.
- Зеркало: Зеркало слева → справа синхронизация. Правая папка станет зеркальной копией левой папки. Это то же самое, что и у Microsoft SyncToy Выбросил вариант, и robocopy / я командная строка. Удаляются лишние файлы и папки в правой папке, а другие файлы заменяются.
- Обновить: Эта опция синхронизации выполняет синхронизацию Левая папка → Правая папка аналогично Зеркало вариант. Однако этот параметр не удаляет лишние файлы и папки в правом дереве папок. Он похож на Microsoft SyncToy Способствовать вариант.
- Пользовательский: В дополнение к трем предустановленным параметрам, На заказ Опция позволяет вам выбрать действие по умолчанию для работы с файлом, доступным только для левого, измененным или только правым файлом. Например, вы можете настроить его для удаления идентичных файлов, если вам нужно иметь только уникальные файлы ( устранить дубликаты ) в левой и правой папках. В большинстве случаев вам не нужно выбирать На заказ настройку, если у вас нет особых требований.
По умолчанию выполняется двухсторонняя синхронизация. Лично я предпочитаю Зеркало резервное копирование проектов моего веб-сайта и Обновить возможность резервного копирования документов. Соответственно выберите один из вариантов синхронизации.
В результатах сравнения по умолчанию выбраны все файлы. Вы можете исключить файл из синхронизации, сняв флажок рядом с именем файла или воспользовавшись контекстным меню.
- Чтобы синхронизировать все элементы, отображаемые в списке, щелкните значок Синхронизировать кнопку вверху.
- Чтобы синхронизировать конкретный файл или набор файлов, исключите все элементы (временно) с помощью контекстного меню, затем установите флажок для выбранных файлов, щелкните правой кнопкой мыши выбранный файл и нажмите Синхронизировать выбор и щелкните Начало .
Это оно! Ваши папки теперь синхронизированы, а операции копирования / обновления / удаления регистрируются FreeFileSync.
Сравните и синхронизируйте локальную папку Vs. Папка FTP рекурсивно
FreeFileSync также может сравнивать локальную папку с Google Диском или локальную папку с папкой вашего FTP-сервера, рекурсивно используя FTP или SFTP-соединение. Вот как сравнить и синхронизировать локальную папку и подпапки с папкой на вашем FTP-сервере.
Все, что вам нужно сделать, это нажать на Доступ к онлайн-хранилищу рядом с кнопкой Обзор на левой или правой панели. При нажатии на эту кнопку открывается следующий диалог:
Введите информацию о FTP- или SFTP-соединении, учетные данные и путь к каталогу FTP для сравнения с локальной папкой.
После этого вы снова возвращаетесь в окно сравнения.
Предмет Размер файла или же Время и размер файла метод сравнения. Последний метод сравнения более надежен.
Выберите вариант синхронизации. Я установил свой 2-сторонняя синхронизация (вместо Зеркало ) для этой цели.
После настройки нажмите Сравнить. Вы увидите список отсутствующих и разных файлов слева и в правой папке.
Нажми на Синхронизировать кнопку, чтобы скопировать файлы в обе стороны, поскольку была выбрана двусторонняя синхронизация. Если вы хотите обновить только местоположение FTP, выберите Зеркало вместо этого синхронизировать.
Запустить FreeFileSync как пакетное задание | Синхронизация командной строки
Вы можете сохранить указанную выше конфигурацию в пакетном задании и запустить его через командную строку или планировщик. Чтобы сохранить конфигурацию и запустить ее из командной строки, выполните следующие действия:
- Нажмите Сохранить как пакетное задание… в меню Файл.
- Вы можете настроить пакетное задание на запуск в свернутом виде и автоматическое закрытие окна после завершения синхронизации.
- Сохраните файл пакетного задания в папку по вашему выбору, например d: BatchRun.ffs_batch
- Затем, чтобы синхронизировать папки с помощью командной строки, используйте следующий синтаксис командной строки:
C: Program Files FreeFileSync FreeFileSync.exe d: BatchRun.ffs_batch
Вы можете создать командный файл Windows или запускать указанную выше команду через планировщик задач через определенные промежутки времени по желанию.
Наконечник: FreeFileSync также может синхронизировать папки с Google Диском.
Метод 4: как сравнить файлы в двух папках с помощью SyncFolders
SyncFolders - еще одна мощная утилита для сравнения и синхронизации файлов, которая работает во всех версиях Windows, включая Windows 10. Программа позволяет легко копировать новые и обновленные файлы и папки в одном или обоих направлениях. Вы также можете сделать резервную копию зеркала (эквивалент Робокопия / МИР
или SyncToy’s Выбросил
характерная черта.)
На панели управления SyncFolders нажмите кнопку «Создать правило ..».
Укажите исходную и целевую папки, а также тип действия (метод резервного копирования), который вы хотите создать.
- Копия: Новые и измененные файлы в исходной папке будут скопированы в целевую папку. Обратите внимание, что если вы выберете эту опцию, лишние файлы или папки в целевой папке не будут удалены.
- Резервное копирование: Создайте зеркальную копию исходной папки. Новые и измененные файлы в исходной папке будут скопированы в целевую папку. Это метод синхронизации влево → вправо. Лишние (потерянные) файлы и папки в целевом расположении будут удалены. Для этого утилита SyncFolders создает базу данных для отслеживания добавления или удаления файлов и папок.
- Двусторонняя синхронизация: Новые и измененные файлы будут скопированы из исходной папки в целевую и наоборот. SyncFolders создаст базу данных во время первой синхронизации для идентификации и отслеживания добавлений, изменений и удалений в обеих папках.
Интересный факт: Другие инструменты синхронизации (например, FreeFileSync) используют сравнение баз данных только для двусторонней синхронизации. Но SyncFolders использует сравнение баз данных даже для левой → правой зеркальной синхронизации. Файл базы данных называется Syncfolders_Database_db и хранится в источнике, а также в целевом расположении для каждой пары папок.
Заметка: Если вы хотите сделать зеркальную резервную копию исходной папки, выберите Резервное копирование вариант. Этот вариант эквивалентен Robocopy вариант зеркала или функция Echo Microsoft SyncToy или FreeFileSync Зеркало вариант.
Вот конфигурация экраны утилиты SyncFolders:
На приведенном выше снимке экрана вы можете увидеть параметр с именем Проверить результаты синхронизации с помощью хеширования (CRC32 или MD5 или SHA-1). Если этот параметр включен, после операции копирования / синхронизации SyncFolders вычислит хэш исходного файла и файла назначения и сравнит, была ли операция успешной. Проверка хеширования - это ресурсоемкая задача, особенно если речь идет о файлах большого размера.
Обратите внимание, что вы также можете сравнивать файлы по содержимому, и в этом случае утилита может выполнять двоичное сравнение (побайтовое сравнение). Это может потреблять больше ресурсов ЦП и должно использоваться только при необходимости.
Сравните папки с помощью SyncFiles
В главном окне или на вкладке обработки щелкните значок Сканировать кнопку для просмотра статистики.
Он показывает количество файлов и папок, которые необходимо синхронизировать, общий размер, потерянные файлы и папки для удаления (в целевом расположении) и другие подробности.
Чтобы просмотреть список файлов и папок, откройте окно сравнения, щелкнув значок Детали… кнопка.
В окне сравнения вы можете увидеть список новых или измененных элементов, которые будут скопированы. Вы также увидите дополнительные файлы в целевой папке, которые будут удалены во время операции синхронизации.
Чтобы изменить «действие» для определенного файла или папки, щелкните его правой кнопкой мыши и выберите нужный вариант. Например, вы можете сделать одно из следующих действий для элемента:
- Создать файл в цели (по умолчанию)
- Удалить файл из источника
- Бездействие
Синхронизация папок с помощью SyncFiles
Вы можете синхронизировать папки в главном окне (вкладка Правила или вкладка Обработка) или из окна сравнения выше.
Нажав на Синхронизировать кнопка - это все, что вам нужно сделать. Результаты отображаются на вкладке «Обработка», а также регистрируются в файле с именем SyncFolders.log. Чтобы просмотреть журнал, нажмите на шеврон рядом с кнопкой шестеренки на панели инструментов и выберите Просмотр файла журнала .
В файле журнала вы увидите что-то вроде этого:
Запланированная задача и использование командной строки
Вы можете легко запланировать задачу синхронизации с помощью SyncFolders.
- Во-первых, убедитесь, что вы сохранили текущие правила в файл правил, например
MyRules.rls
. Обратите внимание, что в одном файле правил может быть несколько наборов папок. - Щелкните значок запланированной задачи на панели инструментов и настройте задачу. Он создает новую задачу (использует планировщик задач Windows) на основе выбранных вами параметров.
Вот синтаксис командной строки, который он использует для синхронизации папок (с помощью файла настраиваемых правил) в неинтерактивном режиме с помощью Планировщика заданий.
SyncFolders.exe 'диск: путь My Rules.rls' / background / synchronize
Если вы не хотите создавать запланированное задание, вы можете создать ярлык на рабочем столе для указанной выше команды, чтобы синхронизировать папки вручную.
SyncFolders, безусловно, впечатляющая программа! Он портативен и имеет простой и понятный пользовательский интерфейс. Параметры фильтрации в этом инструменте очень полезны. Однако окно сравнения нуждается в улучшении. Он хорош для синхронизации задач и может быть хорошей альтернативой устаревшему Microsoft SyncToy.
Метод 5: как сравнить файлы в двух папках с помощью TotalCommander
Total Commander - это файловый менеджер для Windows, который позволяет копировать, перемещать или удалять файлы. Total Commander может гораздо больше. Он может упаковывать и распаковывать файлы, получать доступ к FTP-серверам, сравнивать файлы по содержимому и т. Д.
- Запустите Total Commander и выберите левую папку и правую папку для сравнения.
- Из Команды меню, щелкните Синхронизировать каталоги… С Синхронизировать каталоги В диалоговом окне вы можете сравнить два каталога, включая подкаталоги, друг с другом, а затем скопировать файлы с отличиями в целевой каталог или любой другой каталог.
Если вы выберете Асимметричный вариант, он делает правую папку зеркалом левой - аналогично Робокопия / МИР командная строка или Microsoft SyncToy
Выбросил
вариант. То есть опция копирует отсутствующие или разные файлы в нужную папку, а все лишние файлы и папки справа удаляются. Вы можете выбрать отображение идентичных файлов или только разных файлов в выводе.Параметры сравнения / синхронизации Total Commander описаны ниже.
Асимметричный Если этот параметр отмечен, предполагается, что копия левой стороны должна быть создана на правой стороне. Файлы, которые не существуют в левой части, будут помечены для удаления в правой части. Эта опция предназначена для резервного копирования. Поддиры Также сравнивает подкаталоги двух выбранных каталогов. по содержанию Сравнивает содержимое файлов одинакового размера и даты. Он проверяет, что файлы имеют одинаковое содержимое. - Выберите параметры сравнения «Поддиры», «По содержанию». Важный: Если игнорировать дату установлен флажок, Total Commander не может найти разные / измененные файлы, даже если размеры файлов отличаются. Это кажется ошибкой в 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
- В окне сравнения выберите файлы, которые хотите скопировать. Для этого нужно установить флажок между двумя столбцами сравнения или выбрать один из параметров в контекстном меню. По умолчанию функция выбирает для копирования все более новые файлы. Чтобы отменить выбор файла и предотвратить его копирование или синхронизацию, дважды щелкните стрелку. Чтобы отменить выбор нескольких файлов, выберите файлы, щелкните правой кнопкой мыши элемент (ы) и выберите Удалить выделение Важный: Если Асимметричный опция не включена, если файл в правой папке новее, чем файл в левой папке, синхронизация будет выполняться справа → слева для этого файла. Чтобы изменить его другим способом, нажмите на стрелку рядом с файлом, которая переключает направление синхронизации.
Также вы можете щелкнуть файл правой кнопкой мыши и выбрать Обратное направление копирования для изменения направления синхронизации.
- Нажмите на Синхронизировать . Откроется диалоговое окно для копирования выбранных файлов.
По умолчанию синхронизируется в обоих направлениях. Если вы хотите выполнить синхронизацию в одном направлении - например, левая папка → правая папка, снимите флажок Справа налево флажок и наоборот.
Наконечник: Используя Total Commander, вы даже можете синхронизировать локальный каталог и каталог на FTP-сервере.
Метод 6: сравнение и синхронизация папок в реальном времени с помощью DSynchronize
DSynchronize - хороший инструмент, с помощью которого вы можете синхронизировать две папки вручную или автоматически в реальном времени. Этот инструмент предоставляет больше возможностей, чем любые другие инструменты синхронизации папок, чтобы вы могли настроить способ синхронизации файлов.
- Запустите DSynchronize и настройте исходную и целевую папки.
- Вы можете назначить собственное имя задания (для дальнейшей автоматизации), нажав кнопку ЗАДАНИЯ. Давайте зададим имя задания как
Загрузки
- Для зеркальной синхронизации убедитесь, что двунаправленная синхронизация отключена.
- Чтобы выполнить (только) сравнение без синхронизации двух папок, включите параметр Предварительный просмотр синхронизации в разделе Общие.
- Нажмите кнопку «Синхронизировать», чтобы просмотреть список новых, обновленных и отсутствующих файлов в обоих местах.
Синхронизировать папки
Чтобы синхронизировать папки, снимите флажок Предварительный просмотр синхронизации вариант под генеральный раздел и щелкните Синхронизировать . По умолчанию он выполняет синхронизацию в режиме зеркала. Режим зеркала уже обсуждался в этой статье ранее. Режим зеркального отображения гарантирует, что правая папка точно такая же, как левая. Любые лишние каталоги и файлы в месте назначения удаляются автоматически.
Синхронизация в реальном времени
Чтобы синхронизировать две папки в реальном времени:
- Нажми на Синхронизация в реальном времени в разделе Таймер.
- Настройте параметры синхронизации в реальном времени по своему желанию. Я использовал настройки по умолчанию.
По умолчанию он автоматически синхронизирует папки через 10 секунд. Вы можете настроить его на дальнейшую отсрочку или запланировать запуск через определенные интервалы. - Включите Наблюдать за вложенными папками флажок для синхронизации папок рекурсивно .
Я скопировал несколько файлов в левую папку (источник), и в течение 10 секунд элементы были автоматически синхронизированы с правой папкой. Вы можете увидеть это на этом анимированном GIF:
И изменения (добавление и удаление файлов или папок) регистрируются в главном окне.
Когда синхронизация в реальном времени включена, она отслеживает изменения файлов, и программа находится в области уведомлений, ожидая изменений. Это не требует много ресурсов процессора или памяти. Последний раз я проверял, он использовал только около 10 МБ памяти.
Вот список основных функций DSynchronize:
- Стандарт и синхронизация по таймеру.
- Синхронизация в реальном времени.
- Двунаправленная синхронизация.
- Транзакционная синхронизация (по журналу NTFS).
- Выборочный фильтр (можно исключить отдельные файлы или папки).
- Начать как услугу (вход в программу не требуется).
- Поддерживает символические ссылки и жесткие ссылки.
- Поддерживает переходы и точки крепления.
- Поддерживает ACL.
- Журнал отправлен по электронной почте.
- Резервное копирование замененных файлов предыдущей версии.
- Побайтовое сравнение.
- Поддерживает несколько заданий, каждое со своими настройками и путями синхронизации.
- Минимальное потребление ресурсов (RAM и CPU).
Поддержка командной строки
Вы можете использовать следующую командную строку для автоматизации DSynchronize:
/НАЧАЛО
= Начать синхронизацию с последними сохраненными параметрами.
/ STARTJOB 'JobName'
= Начать синхронизацию с выбранными параметрами задания).
/МИНИМИЗИРОВАТЬ
= Запускается в свернутом виде на панели лотков.
/ СКРЫТО
= Не отображать значок в панели задач.
/ NOSECURITYCHECK
= Не выполняйте проверку безопасности перед синхронизацией.
/ НОМОНИТОРЧЕК
= Не проверять разрешение монитора.
/ AUTOREALTIME
= Запуск свернут, выполните стандартную синхронизацию и активируйте RealTime.
/SOMEFILE.INI
= Начинает использовать выбранный файл INI.
Название задания можно изменить, нажав на РАБОТА в верхней части главного окна программы.
Например, чтобы автоматически синхронизировать две папки (ранее сохраненное задание с именем «Загрузки»), я выполнил эту команду:
'D: dsynchronize DSynchronize.exe' / STARTJOB 'Uploads' / MINIMIZE
Чтобы синхронизировать две папки (задание с именем «Загрузки») и активировать синхронизацию в реальном времени, запустите:
'D: dsynchronize DSynchronize.exe' / STARTJOB 'Uploads' / AUTOREALTIME
Приведенная выше команда синхронизирует две папки, указанные в задании, и автоматически активирует мониторинг в реальном времени. Вы можете увидеть значок мониторинга в реальном времени в области уведомлений.
Это оно!
Метод 7. Сравните две папки с помощью утилиты 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 и их сравнения:
- Скачать HashMyFiles и запустите его.
- В меню Параметры щелкните Типы хэша и выберите SHA-256
- В меню 'Просмотр' нажмите Выбрать столбцы
- В настройках столбца включите параметры SHA-256 , Полный путь , и Размер файла . Щелкните ОК.
- Щелкните меню Файл и выберите Добавить папку
- Выберите исходную папку для сравнения.
- Нажмите, чтобы выбрать Добавить файлы в подпапки и нажмите ОК.
- Сортировать результаты по Полный путь столбец и выберите все записи.
- В меню Файл щелкните Сохранить выбранные элементы
- Сохраните список в файл с именем source.txt
- Очистите результаты, выбрав Очистить все из меню 'Файл'.
- Повторите вышеуказанные шаги, и на этот раз выберите папку назначения, сохраните список в destination.txt
- Теперь отредактируйте файлы source.txt и destination.txt с помощью Блокнота и удалите базовые пути. Используя параметр «Найти» в Блокноте, найдите все вхождения указанного ниже базового пути и замените его пустой строкой.
D: Сайты Winhelponline блог wp-content
- Аналогичным образом в destination.txt файл, удалите этот базовый путь:
E: RameshPC-Synced Backup Сайты Winhelponline blog wp-content
Вы также можете найти и удалить
знак равно
символы, используемые в качестве разделителей.Вот как теперь выглядят файлы:
- Теперь зажигай WinDiff или ваш любимый инструмент сравнения файлов, чтобы увидеть различия.
Вы увидите список различных файлов, дополнительных и отсутствующих файлов.
Метод 8: как сравнить файлы в двух папках с помощью Robocopy
Теперь посмотрим, как использовать встроенную Робокопия консольная утилита для сравнения содержимого двух папок.
Robocopy («Надежное копирование файлов для Windows») - отличный встроенный в Windows инструмент для копирования файлов, обладающий огромными возможностями. Возможности Robocopy выходят за рамки встроенных в Windows команд копирования и XCopy. RoboCopy является наиболее предпочтительным из всех методов командной строки, поскольку Robocopy сравнивает не только имена файлов, но и время последнего изменения. Он сообщает список измененных файлов и новых файлов / папок в исходном и целевом путях.
Среди его отличных функций - «зеркальное» копирование (аналогично Microsoft SyncToy « Выбросил »), Возможность повторного копирования в случае сбоев в сети, многопоточное копирование и т. Д. Помимо копирования файлов, мы можем использовать Robocopy, чтобы просто сравнивать содержимое двух папок (рекурсивно) и регистрировать различия, не копируя ничего, например а прогон, репетиция .
Сценарий
Файлы моего сайта синхронизируются с внешним жестким диском ( ЯВЛЯЕТСЯ:
) регулярно. В целях иллюстрации давайте проверим, идентичны ли эти две папки. В этом примере мы собираемся сравнить следующие папки рекурсивно (то есть вместе с подпапками, глубокое сравнение):
D: Websites Winhelponline blog wp-content uploads и E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads
- Откройте окно командной строки.
- Выполните следующую команду и нажмите ENTER:
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
Результаты вышеуказанной команды регистрируются в
D: Diff.txt
файл. - Закройте окно командной строки.
Подробная информация об используемых переключателях командной строки Robocopy
-
/ Л
:: Только список - не копировать, не ставить отметку времени и не удалять файлы. Эта опция используется для регистрации только для пробного прогона. -
/МНЕ
:: MIR-ошибка дерева каталогов (эквивалент / E plus / PURGE). Поскольку мы используем его с/ Л
переключатель, файлы / папки фактически не копируются. -
/ TS
:: включить метки времени исходного файла в вывод. -
/Лог-файл
:: выводить статус в файл журнала (перезаписать существующий журнал).
В этом примере мы записываем вывод в D: Diff.txt
. Вот как выглядит журнал:
-------------------------------------------------- ----------------------------- ROBOCOPY :: Надежное копирование файлов для Windows ------------- -------------------------------------------------- ---------------- Начато: понедельник, 8 апреля 2019 г., 17:06:10 Источник: D: Websites Winhelponline blog wp-content uploads Dest: E : RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads Files: *. * Параметры: *. * / TS / L / S / E / DCOPY: DA / COPY: DAT / PURGE / MIR / R: 1000000 / Вт: 30 ------------------------------------------- ----------------------------------- 583 D: Сайты 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 Новее 211 2019/04/08 11:35:32 ErrCodeFinder. vbs Новый файл 211 2019/04/08 11:35:32 Sample.vbs 211 D: Websites Winhelpon line 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: Сайты Winhelponline blog wp-content uploads temp ------------------------------ ------------------------------------------------ Всего скопировано Пропущено несоответствие FAILED Extras Dirs: 113 0 113 0 0 1 Файлы: 4125 3 4122 0 0 1 Байты: 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 Завершено: 8 апреля 2019 г. 17:06:10
Вы можете четко видеть дополнительные каталоги и файлы в исходных и целевых папках. Кроме того, он сравнивает метку времени и сообщает вам, являются ли файлы старше или новее (по сравнению с тем же файлом в вашем месте назначения).
В этом примере заметные отличия:
- * EXTRA Dir : Дополнительный каталог существует в месте назначения, но не в источнике.
- * EXTRA файл : Дополнительный файл существует в месте назначения, но не в источнике.
- Старший : Этот файл старше по сравнению с файлом в месте назначения.
- Новее : Этот файл новее по сравнению с файлом в месте назначения.
- Новый файл : Этот файл не существует в пункте назначения. Его также называют
Одинокий
файл
Полный список классификаций файлов RoboCopy:
----------- ----------- ---------------- ------------ --- ------------- ------------ Classifi_ Exists In Exists In Source / Dest Source / Dest Source / Dest cation Источник Место назначения Время файла Размеры файла Атрибуты ----------- ----------- ---------------- ------------ --- ------------- ------------ Новее Да Да Src> dest n / an / a Более старый Да Да SrcЗаметка: К
Изменено
Файл определяется как файл, который существует как в источнике, так и в месте назначения, с одинаковым размером и меткой времени, но с разными настройками атрибутов.Robocopy - это потрясающий инструмент для сравнения и синхронизации файлов в двух папках (вместе с подпапками на несколько уровней глубины) и перечисления различий в файле журнала.
Синхронизируйте папки с помощью Robocopy
Для синхронизации папок ( только из левой → правой папки) с RoboCopy, используйте тот же синтаксис командной строки, который мы использовали ранее для сравнения папок, но на этот раз без то
/ Л
(только список) переключатель.RoboCopy выполняет одностороннюю синхронизацию (слева → правая папка)
Режим зеркального копирования RoboCopy (
/МНЕ
) похож на Microsoft SyncToy ‘S“ Выбросил ' характерная черта. Помните, RoboCopy выполняет только левую → правую синхронизацию - НЕ двусторонняя синхронизация.Это важный отметить, что
/МНЕ
переключиться также удаляет все лишние файлы и каталоги в дереве папки назначения. «Дополнительные» файлы / папки - это элементы, присутствующие в месте назначения, но отсутствующие в исходном пути. В/МНЕ
Команда (mirror) гарантирует, что структура папки назначения (и файлы) является точной копией исходного файла.Используйте следующий синтаксис командной строки для синхронизации элементов из левой → правой папки:
robocopy исходная_папка папка-адресат / MIR / MTВ
/ Т
переключатель предназначен для выполнения многопоточного копирования для сверхбыстрой операции копирования. Это необязательный, но очень полезный переключатель.Состояние синхронизации выводится на консоль для каждого обработанного элемента, а статистика отображается в конце вывода.
Чтобы записать вывод в файл, используйте этот синтаксис:
robocopy исходная_папка папка-адресат / MIR / MT / TS /LOG:D:Diff.txt
Автоматизируйте команды с помощью пакетного файла
Вы можете добавить все команды Robocopy в Блокнот и сохранить его как пакетный файл Windows (с
.один
расширение). Просто дважды щелкните пакетный файл, когда вы хотите синхронизировать указанные папки. Вы даже можете запускать командный файл через необходимые промежутки времени с помощью планировщика заданий.
Метод 9. Сравните две папки с помощью контрольной суммы хэша файла с помощью утилиты FCIV
Используя криптографическое хеширование алгоритм - например, MD5, SHA-1, вы можете проверить, идентичны ли два файла или нет. Контрольная сумма - это хеш-значение, используемое для проверки целостности данных в файлах. Это своего рода подпись для файла.
В Средство проверки целостности контрольной суммы файлов Microsoft tool (FCIV) - это утилита командной строки, которая вычисляет MD5 или SHA1 криптографические хеши для файлов. Вы можете вывести список файлов вместе с их хэшами MD5 или SHA1 в базу данных XML, а затем сравнить файлы в целевой папке с хешами, хранящимися в файле базы данных XML.
Этот метод особенно полезен после того, как вы использовали один из вышеперечисленных методов - например, Robocopy или WinDiff для синхронизации двух папок и хотите проверить целостность каждого файла назначения, сравнивая хэш / контрольную сумму файла с хешем / контрольными суммами исходного местоположения.
Сценарий:
Давайте сравним содержимое следующих папок рекурсивно с помощью FCIV:
D: Сайты Winhelponline blog wp-content uploads E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploadsСкачать Средство проверки целостности контрольной суммы файлов Microsoft из официального центра загрузки Microsoft и извлеките
fciv.exe
в папку - например,d: tools
. Затем воспользуйтесь одним из следующих способов:Опция 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 для каждого файла и выводит имена файлов и соответствующие хеши в файл .XML с именем
hashdb.xml
.В
-bp
Параметр используется для указания базового пути, который нужно удалить из полного имени пути. Это гарантирует, что базовый путь не будет включен в выходные данные XML, чтобы вы могли сравнить элементы в пути к целевой папке, имеющие точно такую же структуру папок.Вот как будет выглядеть содержимое XML-файла:
- Теперь в окне командной строки переключитесь в папку назначения, выполнив следующую команду:
cd / d 'E: RameshPC-Synced Backup Websites Winhelponline blog wp-content'- Затем выполните следующую команду и нажмите ENTER:
d: oolsfciv.exe -v -sha1 -xml D:hashdb.xmlПриведенная выше команда проверяет файлы назначения на соответствие контрольным суммам хеширования, записанным ранее в XML-файле.
hashdb.xml
.В выводе отображается список измененных файлов (на основе контрольной суммы хэша) и список отсутствующих файлов (в месте назначения):
Вот пример вывода.
Начало проверки контрольных сумм: дата / отметка времени Список измененных файлов: ----------------------- uploads 2019 05 w10-extended-search-settings.png Хеш: 8dac0a4400d2b700f81bf70c189e49eb6a620a2f Должен быть: cc2a1523ef070dc2e498dbf5f8cf5edac1b6900d Невозможно хешировать загрузку файлов 2019 05 windiff-header.png не может найти файл с ошибкой: указанный файл. Код ошибки: 2 Невозможно хешировать загрузку файла 2019 05 windows-store-error-0x800706d9.png Сообщение об ошибке: системе не удается найти указанный файл. Код ошибки: 2 uploads 2019 05 w10-Enhanced-search-settings.png Хеш: 8dac0a4400d2b700f81bf70c189e49eb6a620a2f Должен быть: cc2a1523ef070dc2e498dbf5f8cf5edac1b6900ng.Система загрузки файлов ms-2019 не может быть найдена ms-header. указанный файл. Код ошибки: 2 Невозможно хешировать загрузку файла 2019 05 windows-store-error-0x800706d9.png Сообщение об ошибке: системе не удается найти указанный файл. Код ошибки: 2 Окончание проверки: отметка времениВышеупомянутый метод очень полезен для проверки целостности соответствие файлы в папке назначения. Но он не показывает список дополнительный файлы в месте назначения. Это где Вариант 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
Затем сравните два файла
source.txt
иdestination.txt
используя инструмент сравнения файлов, например WinDiff , WinMerge , DiffChecker.com , DiffMerge или WinCompare.
Вы увидите список отсутствующих файлов, дополнительных файлов и измененных файлов (на основе вычисленной контрольной суммы) в двух местах расположения папок.
Я синхронизировал две папки, используя RoboCopy а затем снова сравнил папки, используя контрольную сумму FCIV. Теперь они идентичны!
Метод 10: сравнение двух папок с помощью PowerShell
Используя PowerShell, вы можете легко рекурсивно сравнивать две папки.
Запустите PowerShell. Скопируйте следующий фрагмент и вставьте их все в окно PowerShell и нажмите ENTER.
Введите исходную папку и целевую папку, заменив
source_folder_path
иdest_folder_path
заполнители соответственно.$ Folder1 = 'source_folder_path' $ Folder2 = 'dest_folder_path' функция 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 | Сортировать по относительному пути, имя -desc
Вы увидите такой результат:
Боковой индикатор
<=
означает, что файл или папка существует только в источнике. т.е. отсутствует в пункте назначения.
Боковой индикатор=>
означает, что файл или папка существует только в месте назначения. т.е. отсутствует в источнике.Примечание редактора: Приведенный выше код сравнивает только имена файлов без сопоставления каких-либо других деталей, таких как размер, дата изменения и т. Д. PowerShell имеет возможность выполнять хэш-сравнение элементов в двух папках и выводить результаты, что описано в следующем методе.
Синхронизировать папки
С помощью примерно 10 дополнительных строк кода PowerShell вы даже можете копировать различные или отсутствующие файлы из источника → назначения или наоборот. Для получения дополнительной информации см. Синхронизация файлов и папок с помощью PowerShell .
Метод 11: сравнение двух папок с помощью PowerShell с контрольной суммой хэша файла
Чтобы сравнить файлы в двух местах, используя файл контрольная сумма хеша , вы можете использовать PowerShell. PowerShell по умолчанию использует
SHA-256
алгоритм, который ты можешь измениться используя-Алгоритм
параметр. Как сказано ранее , контрольная сумма хэша - это своего рода подпись для файла, который является уникальным.В этом примере мы сравним следующие папки:
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 | Выберите путь, хеш | экспорт-csv d: source.txt -Delimiter '`t' -NoTypeInformationЗатем выполните следующую команду, чтобы удалить базовые пути из файла.
(gc -path d: source.txt -raw) -replace 'D: \ Сайты \ Winhelponline \ blog \ wp-content \', '' | Исходный файл d: source.txtСписок имен файлов (с относительным путем) вместе с хешами SHA-256 выводится в
source.txt
файл.
Аналогичным образом запустите команды для вычисления хэшей для элементов в пункт назначения , а затем удалите базовые пути из
destinations.txt
:Get-ChildItem 'E: RameshPC-Synced Backup Websites Winhelponline blog wp-content uploads 2019' -Recurse | Get-FileHash | Выберите путь, хеш | export-csv d: destination.txt -Delimiter 't' -NoTypeInformation(gc -path d: destination.txt -raw) -replace 'E: \ RameshPC-Synced Backup \ Websites \ Winhelponline \ blog \ wp-content \', '' | Исходящий файл d: destination.txtВышеупомянутая команда рекурсивно вычисляет хэш для каждого файла в целевой папке, и вывод записывается в
d: destination.txt
Сравните с помощью PowerShell
Затем сравните файлы с помощью следующей команды PowerShell:
Сравнить-объект -ReferenceObject $ (Get-Content d: source.txt) -DifferenceObject $ (Get-Content d: destination.txt) | эт
Он показывает разные файлы и расположение каждого элемента, обозначенного символами
<=
или же=>
для левой папки и правой папки соответственно. В выходных данных также отображаются дополнительные файлы как в источнике, так и в месте назначения.Сравните с помощью WinDiff
В качестве альтернативы вы можете запустить WinDiff и сравнить
d: source.txt
иd: destination.txt
. Вы можете использовать следующие Командная строка WinDiff для сравнения файлов:d: Tools windiff.exe d: source.txt d: destination.txt
Вывод WinDiff показывает различия, выделенные желтым / красным цветом. Из приведенного выше снимка экрана мы можем сделать вывод, что файл
0xc1900101-error.png
отличается. Кроме того, целевая папка или правая папка (обозначены символами!>
в WinDiff) имеет дополнительный файл названный1h.txt
.PowerShell поддерживает множество хэш-алгоритмов и поэтому имеет преимущество перед FCIV.exe инструмент. Инструмент Microsoft FCIV поддерживает только алгоритмы MD5 и SHA-1, которые устарели и могут быть неэффективными из-за проблемы столкновения , правда, очень редко. Конфликт SHA-1 означает, что два файла имеют одинаковые хэши SHA-1, но разное содержимое. Таким образом, SHA-256 может быть предпочтительным алгоритмом для сравнения файлов или папок в производственной среде.
Обратите внимание, что методы командной строки 11 и 12, приведенные ниже, помогут вам сравнить структуру двух каталогов вместе с файлами. Они не сравнивают размеры файлов или дату изменения, чтобы узнать, какой из них новее. Они выполняют только простое сравнение на основе имен файлов, и вы не узнаете, поврежден ли один из файлов назначения во время операции копирования. В производственной среде вам может потребоваться использовать другие инструменты или методы, если вам нужно проверить целостность ваших файлов в исходной и целевой папках, чтобы убедиться, что они являются точными копиями.
Метод 12: составьте список структуры папок с помощью команды ДЕРЕВО
Чтобы сравнить два каталога вместе с подкаталогами, старый добрый
ДЕРЕВО
команда очень удобна. Предположим, вы хотите сравнить две папки (включая имена файлов) D: ИСТОЧНИК и D: DEST , Следуй этим шагам:
- Откройте окно командной строки.
- Введите эти команды:
ДЕРЕВО D: SOURCE / A / F> D: SOURCE.TXTДЕРЕВО D: DEST / A / F> D: DEST.TXTЭто выводит каждый результат команды в отдельные текстовые файлы в вашем
Быстрая подсказка: Чтобы сравнить только каталоги, удалитеD:
корневой каталог диска. Текстовые файлы будут иметь структуру каталогов в древовидном формате, что облегчит работу по сравнению./ F
флаг.- Затем запустите вашу утилиту сравнения текстов, такую как WinDiff, WinMerge или DiffMerge. Кроме того, вы можете сравнить два текстовых файла онлайн через diffchecker.com .
- Перейдите на сайт DiffChecker.com и вставьте содержимое файла d: source.txt в один столбец и D: DEST.txt в другой столбец. Нажмите Найди отличия .
Сравнение каталогов
Сравнение каталогов и файлов
Метод 13: составление списка папок с помощью команды DIR
Чтобы сравнить содержимое двух каталогов, вы можете использовать другую командную строку:
ТЕБЕ
команда.Используйте следующий синтаксис командной строки для рекурсивного создания списка файлов в каталоге. Затем вы можете сравнить его с помощью инструмента сравнения или DiffMerge.
DIR D: SOURCE / S / AD / B> D: SOURCE.TXTDIR D: DEST / S / AD / B> D: DEST.TXTБыстрая подсказка: Чтобы включить файлы вместе со списком каталогов, снимите флаг «/ AD».Однако при использовании команды DIR возникает одна проблема. В выводе перечислены полные пути к каталогам и файлам, как показано ниже:
- D: Source Apr Week1
- D: Source Apr Week2
- D: DEST Apr Week1
- D: DEST Apr Week2
В этом случае вам нужно будет удалить базовые пути сравнения
D: ИСТОЧНИК
иD: DEST
в соответствующие текстовые файлы, отредактировав их с помощью Блокнота. Для массовой замены текста используйте параметр «Заменить» в Блокноте и удалите все вхождения базового пути.После этого сохраните файлы и сравните их содержимое в Интернете с помощью DiffChecker или с помощью автономного инструмента сравнения текста, такого как WinDiff или WinMerge.
Сравнение каталогов - список, созданный с использованием DIR вместо TREE
Бьюсь об заклад, вы найдете вывод содержимого каталога, созданный с использованием ДЕРЕВО быть намного проще и аккуратнее, чем ТЕБЕ .
Надеюсь, что описанные выше методы помогли вам быстро рекурсивно сравнить содержимое двух папок, определить отсутствующие и измененные файлы и согласовать различия.
Дайте знать ваши комментарии!
Одна небольшая просьба: если вам понравился этот пост, поделитесь им?
Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:Так что большое спасибо за вашу поддержку, мой читатель. Это займет не более 10 секунд вашего времени. Кнопки «Поделиться» находятся прямо внизу. :)
- Приколи это!
- Поделитесь этим в своем любимом блоге + Facebook, Reddit
- Твитнуть!