COMP — сравнение содержимого файлов в CMD

Команда COMP побайтово сравнивает два файла или набора файлов и выводит позиции различий. Подходит для проверки целостности и сравнения текстовых и бинарных файлов.

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

Синтаксис команды COMP

COMP [данные1] [данные2] [/D] [/A] [/L] [/N=число] [/C] [/OFF[LINE]]
  • данные1 — путь к первому файлу (или маска, например *.txt)
  • данные2 — путь ко второму файлу или каталогу для сравнения

Если аргументы не заданы, COMP запросит их в интерактивном режиме.

Ключи и параметры

Ключ Описание Пример
/D Выводить различия в десятичном формате (по умолчанию — шестнадцатеричный) COMP /D file1.bin file2.bin
/A Выводить различия в виде символов ASCII вместо числовых кодов COMP /A file1.txt file2.txt
/L Выводить номер строки вместо смещения в байтах COMP /L file1.txt file2.txt
/N=число Сравнить только первые N строк файла COMP /N=100 file1.log file2.log
/C Сравнивать без учёта регистра символов COMP /C file1.txt file2.txt
/OFF[LINE] Не пропускать файлы с атрибутом «вне сети» (offline) COMP /OFFLINE file1 file2
/? Вывод встроенной справки COMP /?

Примеры использования

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

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

COMP C:\configs\old.cfg C:\configs\new.cfg /A /L

Ключ /A покажет символы ASCII, /L — номера строк. Если файлы идентичны, COMP выведет «Файлы сравнены и совпадают».

Сравнение двух бинарных файлов

Используется для проверки, не повреждён ли файл при копировании или передаче по сети.

COMP C:\backup\image.iso D:\check\image.iso

COMP сообщит о первых 10 различиях с указанием смещения в байтах (шестнадцатеричные значения). Если различий нет — файлы идентичны.

Сравнение с выводом в десятичном формате

Удобнее для чтения, когда нужно сообщить коллеге позицию различия без перевода из hex.

COMP /D report_v1.docx report_v2.docx

Позиции различий будут выведены как десятичные числа.

Сравнение первых N строк лог-файла

Если файл огромный, а вас интересует только начало — ограничьте сравнение.

COMP /N=200 /L C:\logs\app.log D:\archive\app.log

COMP сравнит только первые 200 строк и выведет номера строк с расхождениями.

Сравнение группы файлов по маске

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

COMP C:\release\*.dll D:\test\*.dll

COMP последовательно сравнит каждую пару файлов с одинаковыми именами из двух каталогов.

Сравнение без учёта регистра

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

COMP /C /A file_upper.txt file_lower.txt

Символы в верхнем и нижнем регистре будут считаться одинаковыми.

Частые ошибки и решения

Ошибка / симптом Причина Решение
«Файлы имеют различный размер» COMP не сравнивает файлы разного размера по умолчанию Используйте FC вместо COMP — он умеет сравнивать файлы разного размера
«Слишком много различий» и сравнение прерывается COMP останавливается после 10 обнаруженных различий Это ограничение команды; для детального сравнения используйте FC /B или сторонние утилиты
COMP запрашивает ввод, хотя аргументы указаны Путь содержит пробелы и не взят в кавычки Оберните пути в двойные кавычки: COMP "C:\My Files\a.txt" "D:\My Files\b.txt"
Ключ /A не используется и нечитаемый вывод в hex По умолчанию COMP выводит шестнадцатеричные коды Добавьте /A для вывода ASCII или /D для десятичных чисел
«Не удаётся открыть файл» Файл заблокирован другим процессом или нет прав на чтение Закройте программу, использующую файл, или запустите CMD с правами администратора

Когда применять, а когда нет

Команда COMP хорошо подходит для проверки целостности бинарных файлов (образы, архивы, exe) и быстрой проверки пар текстовых файлов одинакового размера. Она не требует прав администратора и работает во всех версиях Windows.

Не используйте COMP, если файлы заведомо разного размера — команда откажет сразу. В этом случае применяйте FC (File Compare), которая умеет сравнивать файлы разного размера и выводит конкретные отличающиеся строки. Для сложного diff-анализа текстовых файлов удобнее PowerShell: Compare-Object (Get-Content a.txt) (Get-Content b.txt).

FAQ

В чём разница между COMP и FC?

COMP сравнивает побайтово и останавливается после 10 различий; FC умеет сравнивать файлы разного размера, показывает строки целиком и поддерживает режим построчного сравнения (/L) и бинарный режим (/B). Для текстовых файлов FC обычно информативнее.

Как сравнить два каталога командой COMP?

COMP сравнивает именно файлы, а не каталоги целиком. Используйте маску: COMP C:\dir1\* D:\dir2\* — это сравнит файлы с одинаковыми именами из двух папок.

COMP показывает «слишком много различий» и останавливается — что делать?

Это встроенное ограничение: COMP прекращает сравнение после 10 найденных различий. Переходите на FC /B для бинарных или FC /L для текстовых файлов — они не имеют такого ограничения.

Можно ли использовать COMP в скрипте для автоматической проверки?

Да. Проверяйте ERRORLEVEL: 0 — файлы идентичны, 1 — есть различия, 2 — ошибка открытия файлов. Пример: COMP a.bin b.bin >nul && echo OK || echo DIFFERENT.

Нужны ли права администратора для COMP?

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

COMP работает с файлами в кодировке UTF-8?

COMP работает на уровне байтов и не знает о кодировках. Он сравнит байты, а не символы. Если файлы в разных кодировках, используйте FC с ключом /U для сравнения в Unicode.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

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