Как с помощью командной строки сравнить два текстовых или бинарных файла

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

По идее для этих целей лучше всего использовать специальные утилиты, например WinMerge, но файлы также можно сравнивать с помощью самой обыкновенной командной строки. В командной оболочке всех версий Windows имеется замечательная команда FC. Она позволяет сравнивать между собой любые файлы, причём как текстовые, так и бинарные. Синтаксис этой команды очень прост и выглядит он следующим образом:

FC /ключ [полный путь к первому файлу] [полный путь ко второму файлу]

Список доступных ключей можно просмотреть, набрав и выполнив в консоли CMD команду FC /?. Справка даётся на русском языке, так что вы без труда разберетесь, что к чему.

FC /?

А теперь немного практики. Допустим, у вас есть два файла с кодом PHP и в одном из них предположительно имеются некие различия. Скрипты PHP это обычные текстовые файлы, поэтому в данном случае будем использовать ключ L предназначенный для сравнения текстовых документов в кодировке ASCII. Если скрипт содержит кириллицу, не забудьте перед выполнением команды сравнения выставить в консоли кодировку 1251, иначе на выходе вы получите крякозябры. Смена кодировки выполняется командой chcp 1251.

Смена кодировки chcp 1251

Затем сравниваем файлы:

FC /L D:/1.php D:/2.php

Сравниваем файлы

Различия между файлами выводятся в следующем порядке. Сначала идёт имя первого файла, затем строка, в которой было найдено несовпадение. За ним идёт имя второго файла и точно также указывается различающаяся строка. Если программа находит ещё несколько несоответствий в других строках, всё повторяется. В общей сложности утилита может обнаружить до 100 различий, такое ограничение имеет используемый командой fc внутренний буфер.

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

FC /B D:/1.exe D:/2.exe

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

00000040: 56 BA
00000050: 65 68
00000060: 43 72
00000070: 6U 0A

Поиск несоответствий в бинарных файлах

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

Шестнадцатеричный редактор

Какими ещё полезными возможностями обладает команда FC? Ну, например поддержкой подстановочных знаков. Если вам нужно сравнить некий файл etalon.exe с другими исполняемыми файлами в текущем каталоге, используйте команду следующего формата:

fc *.exe etalon.exe

Также с помощью подстановочных знаков можно производить пакетное сравнение файлов, расположенных в разных каталогах или разделах жёсткого диска. А что будет, если сравниваемые файлы окажутся полностью идентичными? Утилита выведет лаконичное сообщение — FC:различия не найдены.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Что делать, если при загрузке рабочего стола открываются INI-файлы

Системный сбой может привести и порой приводит к очень странным ошибкам, которые, хотя и не ...

Что делать, если файл thumbs.db не дает удалить сетевую папку

Удаление общих сетевых папок почти ничем не отличается от удаления обычных каталогов, за тем лишь ...

Как найти и удалить осиротевшие файлы в облачном хранилище Google Drive

Каждый создавший учетную запись Google пользователь автоматически получает 15 Гб бесплатного облачного дискового пространства. Это ...

Что делать, если при удалении папки Windows выдает сообщение «Элемент не найден»

Выполнив удаление файла или папки, неожиданно для себя вы можете обнаружить, что удаленный объект по-прежнему ...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *