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

Последнее обновление: 27/02/2026
Автор: Исаак
  • Команда FC позволяет сравнивать один или несколько файлов в Windows в текстовом, юникодном или двоичном режимах, точно указывая на их различия.
  • Ваши параметры (/A, /B, /C, /L, /U, /W, /LBn, /nnnn, /N, /OFFLINE, /T) определяют, как интерпретируются и отображаются расхождения.
  • FC возвращает коды завершения (0, 1 или 2), что облегчает его интеграцию в скрипты и автоматизацию для проверки изменений.
  • Он поддерживает пути, диски и подстановочные знаки для сравнения пакетов файлов и может использоваться как в командной строке, так и в PowerShell путем вызова fc.exe.

Сравнение файлов с помощью команды FC в Windows

Если вы работаете со скриптами, отчетами, кодом или просто хотите проверить, был ли изменен файл, используйте эту команду. Windows console fc Это один из тех незаметных, но невероятно полезных ресурсов, о которых почти никто толком не знает. Вам не нужно ничего устанавливать или использовать сторонние программы: он включен в саму операционную систему и готов к использованию из командной строки или PowerShell — вы можете посмотреть, как это работает. Сравнивайте текстовые файлы и файлы в PowerShell или CMD..

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

Что такое команда FC и для чего она используется?

Команда FC (Сравнение файлов) Это инструмент командной строки Windows, используемый для сравнения содержимого двух файлов или двух наборов файлов и отображения различий между ними. Он совместим с Windows 10, Windows 11, более ранними версиями и серверными редакциями. Windows Server 2019, 2022 и более поздние версии.

При запуске FC система анализирует оба файла и сообщает вам об этом. Они идентичны, отличаются ли они, и в чём заключаются эти различия?В зависимости от выбранного варианта, программа может работать на текстовом уровне (построчно), с текстом в формате Unicode или на двоичном уровне (байт за байтом), поэтому она адаптируется к обоим типам текстовых файлов.Сравните файлы в Блокноте) например, исполняемые файлы, изображения или другие бинарные форматы.

Кроме того, FC позволяет уточнить тип сравнения благодаря нескольким опциям: вы можете Игнорировать прописные и строчные буквы, игнорировать пробелы, отображать номера строк.Это позволяет ограничить количество последовательных различий, которые может обрабатывать внутренний буфер, сравнивать файлы, помеченные как автономные, и многое другое. На первый взгляд, это гораздо более гибкий инструмент, чем кажется.

Важно отметить, что, хотя его можно вызвать из PowerShell, в данной среде это невозможно. fc — это псевдоним командлета Format-Custom.Следовательно, если вы хотите использовать классический инструмент сравнения файлов, вам необходимо явно ввести... fc.exe вместо просто fc, чтобы убедиться, что правильный исполняемый файл находится в C:\WINDOWS\fc.exe.

Использование команды FC для сравнения файлов

Полный синтаксис команды FC.

Согласно справке Microsoft Windows, официальный синтаксис команды включает два основных режима использования: Сравнение текста (ASCII или Unicode) y бинарное сравнениеОбщая форма выглядит следующим образом:

fc /a ] <archivo1> <archivo2>

fc /b <archivo1> <archivo2>

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

Классическая справка, которая появляется при запуске ФК /? В командной строке на испанском языке синтаксис выглядит следующим образом (отформатировано для лучшего понимания):

FC ]
archivo1 archivo2
FC /B archivo1 archivo2

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

Синтаксис команды FC в CMD

Значение каждого параметра команды FC

Истинный потенциал команды становится ясен, когда вы видите, что делает каждая опция. Они подробно описаны ниже. все параметры, распознаваемые fc.exe как они представлены в документации Microsoft и во встроенной справке.

Режимы сравнения

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

  Что такое атаки манипуляции WDAC и как от них защититься?

/B – Сила один побайтовое двоичное сравнениеВ этом режиме не предпринимается попыток повторной синхронизации потока данных после обнаружения несоответствия; процесс просто продолжается и отображает каждое обнаруженное различие. Это режим по умолчанию для файлов с обычно бинарными расширениями, такими как .exe, .com, .sys, .obj, .lib или .bin, даже если вы явно не указываете ключ /B.

/L – Дать указание FC выполнить Построчное сравнение ASCIIПри обнаружении различий всегда предпринимается попытка повторной синхронизации файлов. Это режим по умолчанию для всех файлов, которые не считаются бинарными (т. е., тех, которые не имеют расширений, указанных ранее, например, "исполняемый файл" и подобных).

/U – Изменить поведение функции fc таким образом, чтобы она обрабатывала файлы как Текстовые файлы в формате UnicodeЭта опция гарантирует, что будет соблюдена конкретная кодировка (например, UTF-16) и что символы, выходящие за рамки базового ASCII, будут интерпретированы корректно.

Управление регистром символов, пробелами и табуляцией

/C – Это заставляет команду игнорировать различия верхний и нижний регистрЕсли изменяется только регистр символов (например, «Hola» вместо «HOLA»), строки будут считаться эквивалентными и не будут помечены как отличающиеся. Обратите внимание, что это относится к буквам, но не к другим символам.

/W – Снизить и минимизировать значение пустое пространствоТо есть, речь идёт о табуляции и пробелах. Если в строке есть длинная последовательность пробелов или табуляции, FC будет рассматривать их как один пробел. Кроме того, если вы используете /W, команда игнорирует начальное и конечное пространства при сравнении каждой строки, что отлично подходит для скриптов или текстов, где отступы не имеют значения.

/T – Отключает автоматическое преобразование табуляции в пробелы. По умолчанию FC обычно обрабатывает табуляцию как пробелы с переносами каждые восемь символов, но с параметром /T Таблицы соблюдаются в неизменном виде.Это полезно, когда точное выравнивание является частью содержательного контента.

Внутреннее управление буферами и синхронизация

/ФУНТ – Отрегулируйте размер внутренний буфер строки Этот буфер используется программой FC при сравнении текстовых файлов. По умолчанию он позволяет обрабатывать до 100 различных строк подряд. Если в сравниваемых файлах более 100 строк подряд без совпадений, программа считает, что файлы слишком сильно разнесены друг от друга. прерывает сравнениеС помощью этого параметра вы можете увеличить или уменьшить этот лимит, указав конкретное количество строк вместо 100.

/ – Укажите, сколько Последовательные строки должны совпадать. После обнаружения расхождения FC считает, что успешно выполнила повторную синхронизацию обоих файлов. Значение по умолчанию — 2. Если после блока различий обнаруживается менее nnnn последовательных идентичных строк, эти строки все равно будут отображаться как часть различий, поскольку программа предполагает, что файлы остаются смещенными.

Возможности просмотра и архивирования в автономном режиме

/N – Это вызывает номера строк При сравнении ASCII-кодов вы увидите, помимо содержимого, фактическую ссылку на строку каждого файла, что крайне важно, если вам впоследствии потребуется вручную отредактировать соответствующий файл.

/ВЫКЛЮЧЕННЫЙ – По умолчанию FC пропускает файлы, у которых установлен атрибут «offline». Эта опция сообщает программе, что Также сравните файлы, помеченные как офлайн.что может быть полезно в средах, где данные хранятся в удаленных местах или специальных файловых системах.

Спецификация файла и краткая справка

В дополнение к указанным выше параметрам важно понимать, как указывать файлы в командной строке. Часть синтаксиса, состоящая из file1 y file2 определить первый и второй файл Какой из них FC будет сравнивать. Вы можете использовать полные пути, относительные пути и, при необходимости, разные буквы дисков.

Команда также поддерживает символы-заменители: * y ?Если в file1 вы укажете звездочку или вопросительный знак, FC возьмет все файлы, соответствующие этому шаблону, и сравнит их с файлом или шаблоном, указанным в file2. А если в file2 вы используете подстановочный знак, инструмент применит эквивалентное имя файла1 чтобы завершить оставшуюся часть схемы и определить пары, которые следует сравнить.

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

  Исправление: исполняемый файл службы защиты от вредоносных программ, чрезмерная загрузка ОЗУ и ЦП.

Как FC отображает различия между файлами

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

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

При активации бинарного режима с помощью /BОднако ситуация меняется: каждое несоответствие представляется в виде синтаксиса следующего типа: \<XXXXXXXX: YY ZZ>, Значение XXXXXXXX Это относительный шестнадцатеричный адрес (начинающийся с 00000000), указывающий позицию, где была найдена уникальная пара байтов. Рядом с ним отображается следующее: YY y ZZ, которые представляют собой шестнадцатеричные значения несовпадающих байтов, принадлежащих файлу 1 и файлу 2 соответственно.

Если при сравнении двоичных данных один из файлов заканчивается, а в другом все еще содержатся данные, FC укажет на это. Один из файлов длиннее другого.Однако, если после анализа всего содержимого никаких различий не будет обнаружено, на экране появится сообщение следующего вида. FC: no differences encounteredили его локализованный эквивалент, что ясно показывает, что оба файла идентичны.

В режиме ASCII FC использует свои внутренний буфер на 100 строк (если вы не изменили его с помощью /LBn) для чтения и сопоставления по блокам. Если файлы настолько разные, что не удается найти совпадение в этом блоке, отобразится сообщение «Сбой синхронизации. Файлы слишком разные», указывающее на то, что не удалось корректно выровнять две текстовые последовательности.

коды завершения команды FC

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

Таблица кодов завершения очень проста и остается неизменной:

  • 0 – Сравниваемые файлы: идентичныйРазличий в содержании обнаружено не было.
  • 1 – Файлы находятся различныйМежду файлами file1 и file2 имеется как минимум одно расхождение.
  • 2 – А ошибка при сравненииЭто может быть связано с правами доступа, недоступными файлами, проблемами чтения или недопустимыми параметрами.

В пакетном файле, где необходимо проверить изменения, эти коды можно использовать с такими командами, как... ЕСЛИ УРОВЕНЬ ОШИБКИ или аналогичные конструкции, так что скрипт действует тем или иным образом в зависимости от того, совпадают файлы или нет.

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

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

Сравните два текстовых файла в режиме ASCII.

Представьте, что у вас есть два отчёта. monthly.rpt y sales.rptИ вы хотите увидеть, чем они отличаются, но при этом не перегружать экран линиями. Вы можете использовать:

fc /a monthly.rpt sales.rpt

При использовании опции /A будет отображаться только FC. первая и последняя строка каждого блока различийБлагодаря этому результат становится гораздо более читабельным, даже если изменения существенны.

Сравнивайте бинарные файлы (например, пакетные скрипты).

Если вас интересует проверка изменений на уровне байтов в двух пакетных файлах, допустим... profits.bat y earnings.batВ идеале следует использовать бинарный режим:

fc /b profits.bat earnings.bat

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

Сравните все файлы .bat с эталонным файлом.

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

  Настройка и использование гостевого режима в Chromecast

fc *.bat new.bat

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

Сравнивайте файлы с одинаковым именем на разных дисках.

Ещё одна довольно типичная ситуация — проверка соответствия файлов на диске C и диске D, например, при проверке резервной копии. Чтобы сравнить все .bat-файлы в корневом каталоге диска C с их эквивалентами на диске D, можно ввести:

fc c:\*.bat d:\*.bat

В этом случае FC будет сравнивать каждый пакетный файл в корневом каталоге C: с соответствующим файлом. то же имя в корне D:Если вам нужно сравнить только определенный файл, достаточно указать его имя вместо символа подстановки *.bat.

Использование FC в консоли Windows и в PowerShell

Классическая консоль команд Windows, известная как CMDЭто идеальная среда для использования команды FC, но вы также можете использовать её из PowerShell с небольшим отличием. В CMD просто откройте окно (например, набрав CMD (в меню «Пуск») и выполните команды точно так, как показано в предыдущих примерах.

В PowerShell, как уже упоминалось, fc — это псевдоним командлета Format-Custom.Чтобы избежать конфликтов и убедиться, что вы используете классический компаратор файлов Windows, необходимо ввести fc.exe вместо просто fcС этого момента синтаксис параметров остается таким же, как в CMD.

Многие пользователи комбинируют FC с другими распространенными консольными командами, такими как CD (для смены папок), DIR (для вывода списка содержимого каталога), ДЕРЕВО (для просмотра дерева подпапок), ЕХАТЬ o ПЕРЕИМЕНОВАТЬ (для перемещения или переименования файлов), а также такие утилиты, как НАЙТИ для поиска текстовых строк в одном или нескольких файлах.

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

Упрощенные варианты использования FC и часто используемые опции.

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

fc archivo1 archivo2

В этом представлении /b служит для обозначения a бинарное сравнениеЕсли этот параметр опущен, предполагается, что сравнение выполняется для текстового типа данных (по умолчанию ASCII или Unicode, если указан параметр /U). File1 и file2 остаются именами файлов, которые вы хотите сравнить.

Во многих сводках также указаны следующие ключевые параметры: /b для побайтового сравнения, /l для построчного сравнения, /c для сравнения без учета регистра и /s для сравнения. рекурсивно подкаталогиСледует уточнить, что параметр /s не является частью официального синтаксиса FC в Windows (обычно он относится к другим командам), но иногда упоминается в общих схемах сравнения файлов или в примечаниях, в которых смешиваются разные команды.

В любом случае, всегда используйте встроенную справку. ФК /? а официальные документы гарантируют, что у вас есть правильный список параметров для вашей версии Windowsне путать параметры других команд с параметрами FC.

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

Сравните два текста, чтобы увидеть различия в PowerShell или CMD.
Теме статьи:
Как сравнить два текстовых файла в PowerShell или CMD