Как использовать FC (File Compare) в командной строке Windows
Быстрые ссылки
- Список переключателей File Compare
- Синтаксис команды FC
- Практические примеры и сценарии
- Советы, альтернативы и чеклисты
FC (File Compare) — простая консольная утилита Windows для сравнения содержимого текстовых и бинарных файлов. Кратко: FC сравнивает строки для текстовых файлов и байты для бинарных, умеет работать с ASCII и Unicode и показывает различия между двумя файлами или наборами файлов.
Определение: FC — командная утилита для сравнения файлов в Windows, доступная из командной строки.
Переключатели и параметры FC
Ниже перечислены основные ключи FC и краткое объяснение их назначения.
- /B – бинарное сравнение (байт за байтом).
- /C – регистронезависимое сравнение (игнорирует разницу между заглавными и строчными буквами).
- /A – показывает только первую и последнюю строки каждой группы различий (краткий вывод).
- /U – сравнивать файлы как Unicode (UTF-16 LE) текст.
- /L – сравнивать файлы как ASCII текст.
- /N – доступен только для ASCII; показывает номера строк в выводе.
- /LBn – заменить n числом: ограничивает число подряд идущих несовпадающих строк, после которых FC завершит попытки синхронизироваться. По умолчанию, если не задать n, порог = 100 строк.
- /nnnn – заменить последовательность n цифрами: после обнаружения несовпадающих строк FC продолжит сравнение только если найдёт n подряд совпадающих строк; полезно при предотвращении сильного рассинхрона двух файлов.
- /T – не расширять табуляции в пробелы при сравнении.
- /W – сжимать пробельные символы (табуляции и пробелы) перед сравнением.
Есть единственный позиционный параметр, который нужно указывать дважды: путь к файлу (pathname). Укажите два пути — для первого и второго файла (или два шаблона файлов с подстановочными знаками).
Синтаксис FC
Примеры корректного ввода команды:
FC [pathname1] [pathname2]FC [switches] [pathname1] [pathname2]FC возвращает коды в %errorlevel%, которые можно использовать в пакетных сценариях:
- -1 — синтаксис команды неверен.
- 0 — файлы идентичны.
- 1 — файлы различаются.
- 2 — как минимум один из файлов не найден.
Важно: дополнительные коды возврата возможны в редких случаях, но указанные — стандартные, которые следует учитывать в автоматизации.
Практическая часть — подготовка
Скачайте три примерных текстовых файла, используемых в демонстрациях. Для примера их названия такие:
- FCsample
- FCexercise
- FCexercise2
Скопируйте файлы в любую папку (в примерах используется Рабочий стол). Откройте командную строку с повышенными правами (Пуск → ввести CMD → правый клик → Запуск от имени администратора), чтобы избежать всплывающих окон подтверждения при работе с системными папками.

Наши сценарии:
- Сравнить два текстовых файла в одной папке.
- Сравнить файлы с использованием /LBn для ограничения последовательных несовпадений.
- Сравнить два одинаковых файла.
- Выполнить бинарное сравнение двух файлов.
Сценарий 1 — Простейшее сравнение двух текстовых файлов
Пример сравнения файлов FCsample и FCexercise (замените путь на актуальный для вашего аккаунта):
fc C:\Users\Martin\Desktop\FCsample.txt C:\Users\Martin\Desktop\FCexercise.txt
Пояснение: в выводе показаны все несоответствующие строки, так как файлы отличаются. FC для текстового сравнения показывает фрагменты из обоих файлов рядом, по умолчанию в удобочитаемом виде.
Советы:
- Если надо просто узнать факт различия, можно проверять %errorlevel% после выполнения.
- Для обработки результатов в скрипте перенаправьте вывод в файл: fc <путь1> <путь2> > result.txt
Сценарий 2 — Ограничение синхронизации /LBn
Остановим попытки «ресинхронизации» после 2 несовпадающих строк:
fc /lb2 C:\Users\Martin\Desktop\FCsample.txt C:\Users\Martin\Desktop\FCexercise.txt
Пояснение: сообщение “Resync Failed. Files are too different.” означает, что найдено более двух подряд несовпадающих строк, поэтому FC прекратил попытки найти синхронизацию. Попробуйте увеличить число или вручную привести файлы ближе.
Когда это полезно: при больших различиях вы можете ограничить время поиска совпадений и быстро получить индикацию «файлы разошлись».
Сценарий 3 — Сравнение двух идентичных файлов
Файлы FCexercise и FCexercise2 одинаковы. Выполним сравнение:
fc C:\Users\Martin\Desktop\FCexercise.txt C:\Users\Martin\Desktop\FCexercise2.txt
Результат: FC сообщает, что различий не обнаружено. Если отредактировать одну строку (например, добавить букву), FC покажет, какая строка изменилась:

Советы:
- Для проверки небольших изменений в больших наборах файлов используйте /N, чтобы видеть номера строк.
- Для регистронезависимого сравнения добавьте /C.
Сценарий 4 — Бинарное сравнение (/B)
Пример бинарного сравнения двух разных файлов:
fc /b C:\Users\Martin\Desktop\FCexercise.txt C:\Users\Martin\Desktop\sample.txtПри бинарном сравнении FC выводит пары байт в шестнадцатеричном виде и позицию первого различия. В случае, если один файл длиннее другого, FC сообщит это.
Пример бинарного сравнения двух идентичных файлов:
fc /b C:\Users\Martin\Desktop\FCexercise.txt C:\Users\Martin\Desktop\FCexercise2.txtВывод: отсутствие различий.
Важно: бинарное сравнение полезно для обнаружения отличий в двоичных форматах, но не даёт «контекстной» информации о строках для текстовых данных.
Частые ошибки и отладка
- Неправильный синтаксис команды → %errorlevel% = -1. Проверьте пути и пробелы.
- Файл не найден → %errorlevel% = 2. Убедитесь, что указали расширение, и путь корректен.
- Кодировка: если файл в UTF-8 без BOM, FC с /U может некорректно распознать текст. FC ожидает UTF-16 для /U и ANSI/ASCII для /L. В сомнительных случаях сохраните временную копию в нужной кодировке.
- Большие файлы: для очень больших файлов вывод FC может быть громоздким. Для быстрой проверки используйте контрольные суммы (см. раздел «Альтернативы»).
Когда FC не подходит (контрпримеры)
- Нужен дифф с контекстом, подсветкой и возможностью слияния — используйте графические инструменты (WinMerge, Beyond Compare).
- Файлы в сложных текстовых кодировках (UTF-8 без BOM) — PowerShell Compare-Object или специализированный парсер лучше обработают кодировку.
- Сравнение целых директорий с учётом структуры и прав — применяйте robocopy /L с опциями отчёта или специализированные инструменты.
Альтернативные подходы
- comp — ещё одна консольная утилита Windows для побайтового сравнения.
- PowerShell Compare-Object — сравнение коллекций, объектов и текстов в гибких сценариях.
- certutil -hashfile — быстрый способ сравнить контрольные суммы файлов (MD5/SHA1/SHA256).
- WinMerge, Beyond Compare, Meld — графические утилиты с удобным интерфейсом и возможностью слияния.
Скорректированная методология: как подойти к сравнению файлов
- Определите, нужен ли текстовый или бинарный режим.
- Проверьте кодировку файлов; при сомнении создайте копии в UTF-8/ASCII/UTF-16.
- Запустите FC с соответствующими ключами (/L или /U для текста, /B для бинарного).
- Если нужны номера строк — добавьте /N. Для игнорирования регистра — /C.
- Для автоматизации проверяйте %errorlevel% и перенаправляйте вывод в файл для последующей обработки.
Чек-листы по ролям
Разработчик:
- Убедиться в кодировке файла.
- Использовать /N и /C при проверке конфигураций.
- Сохранять результат сравнения в лог для CI.
Системный администратор:
- Для бинарных сравнений использовать /B.
- При больших наборах файлов использовать контрольные суммы.
- Автоматизировать проверки в скриптах (batch/PowerShell).
Тестировщик/QA:
- Использовать /LBn для поиска рассинхронизаций.
- Сравнивать файлы до и после конвертации.
- Документировать кейсы, при которых FC показал различия.
Шпаргалка — часто используемые команды
- Базовое сравнение текстовых файлов:
fc C:\path\to\file1.txt C:\path\to\file2.txt- Регистронезависимое с номерами строк:
fc /c /n C:\path\file1.txt C:\path\file2.txt- Бинарное сравнение:
fc /b C:\path\file1.bin C:\path\file2.bin- Ограничение ресинхронизации до 50 строк:
fc /lb50 C:\path\file1.txt C:\path\file2.txt- Сравнение наборов файлов с подстановкой:
fc C:\dir1\*.txt C:\dir2\*.txtКритерии приёмки
- Инструмент корректно сообщает %errorlevel% для автоматизации.
- При текстовом сравнении вывод содержит объяснимые различия (строки из обоих файлов).
- Бинарное сравнение даёт шестнадцатеричный дамп до первой точки отличия.
- В случае одинаковых файлов FC возвращает 0.
Ментальные модели и эвристики
- “Если нужен смысл — выбираем текстовый режим (L/U), если нужна точность байтов — бинарный (/B).”
- “LBn — это тормоз: уменьшая n, вы быстрее получите ошибку о рассинхронизации; увеличивая — даёте FC больше шансов найти совпадения.”
Минимальные тест-кейсы для проверки FC
- Одинаковые текстовые файлы → %errorlevel% = 0.
- Тот же файл, но с изменённой одной буквой → %errorlevel% = 1, вывод с отличием.
- Файла не существует → %errorlevel% = 2.
- Бинарные файлы с разной длиной → /B показывает позицию различия и сообщает о разной длине.
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Начать сравнение файлов] --> B{Файлы текстовые?}
B -- Да --> C{Нужна регистронезависимость?}
C -- Да --> D[Использовать FC /L /C]
C -- Нет --> E[Использовать FC /L]
B -- Нет --> F[Использовать FC /B]
D --> G[Проверить %errorlevel% и лог]
E --> G
F --> GБезопасность и конфиденциальность
- При тестировании используйте копии или обезличенные образцы данных, чтобы избежать утечки реальных конфиденциальных данных.
- FC сам по себе не изменяет файлы, но операции вокруг сравнения (скрипты, конвертация) могут перезаписывать файлы — делайте бэкапы.
Итог и рекомендации
FC — лёгкий и доступный инструмент для быстрых проверок и автоматизации. Он подходит для простых задач сравнения текстов и бинарных данных, особенно в пакетных скриптах. Для удобного визуального анализа и слияния лучше использовать графические дифф‑утилиты.
Ключевые рекомендации:
- Всегда проверяйте кодировку исходных файлов.
- Для автоматизации реагируйте на %errorlevel%.
- Для больших наборов файлов используйте контрольные суммы или специализированные инструменты.
Image Credit: Nikki on Flickr
Похожие материалы
Отключить Smart Reply и Smart Compose в Gmail
Avast не может сканировать — как исправить
Как закрепить твит в профиле Twitter
Отключить Bixby на Galaxy S22
Двухэтапная аутентификация в Shopify — настройка и безопасность