- Команда fc сравнивает файлы в текстовом (ASCII/Unicode) или двоичном режиме с возможностью игнорировать регистр, пробелы и символы табуляции.
- Ключевые параметры: /a (сокращенный вывод), /b (двоичный), /w (сжатие пробелов), /n (номера строк), /lb (буфер) и / (ресинхронизация).
- Поддерживает подстановочные знаки и возвращает коды выхода (0 — равно, 1 — отличается, 2 — ошибка); альтернативы включают Windiff и Comp.
Если вы работаете ежедневно с Windows и вы обеспокоены обнаружением изменений между версиями документов, скриптов или двоичных файлов, команда fc Это эффективный инструмент, который экономит ваше время, точно показывая различия между двумя файлами. Эта встроенная утилита сравнивает содержимое и выявляет несоответствия как в текстовом (ASCII/Unicode), так и в байтовом (двоичном) режимах..
Помимо базовых возможностей использования, FC предлагает мощные параметры, позволяющие адаптировать сравнение к вашим потребностям: игнорировать регистр, сжимать пробелы, числовые линии, управлять вкладками, работа с подстановочными знаками o настроить ресинхронизацию. Освоив эти параметры, вы сможете оценить реальные различия и избежать ложных срабатываний из-за форматирования или пробелов..
Что такое FC и где он доступен?
Целью fc является прямое: сравнить два файла или набора файлов и отобразить различия. Это инструмент экосистемы Windows, который поставляется в виде традиционного исполняемого файла и на многих компьютерах находится в C:\WINDOWS\fc.exe. En PowerShell Существует псевдоним fc, который указывает на Format-Custom.; поэтому, чтобы избежать конфликтов в PowerShell, желательно запускать явно fc.exe когда вы хотите сравнить файлы.
Различные источники указывают, что fc доступен в Windows 12, 11, 10 и в серверных редакциях, таких как MS Server 2025, 2022 или 2019. Кроме того, существуют реализации в других средах, таких как FreeDOS., с расширенным набором опций и некоторыми собственными особенностями поведения, которые мы также обсудим ниже.
Синтаксис команды fc
Канонический синтаксис в Windows охватывает сравнения в текстовом и двоичном формате. Вы найдете две основные формы: одну для режима ASCII/Unicode и одну для двоичного режима.:
fc /a ] <archivo1> <archivo2>
fc /b <archivo1> <archivo2>
С практической точки зрения, file1 y file2 Они являются обязательными, с указанием маршрутов, если применимы, и оттуда вы выбираете варианты, которые подходят для вашего сравнения. Для просмотра встроенной справки используйте fc /? в консоли команды (CMD).
Наиболее полезные параметры и опции (Windows)
Набор модификаторов позволяет тонко настроить анализ. Это наиболее важные из них в документированном Windows FC.:
- /a: сокращенный вывод для сравнения текстовВместо того, чтобы перечислять все отдельные линии, показывает только первую и последнюю строку каждого блока различий.
- /b: двоичный режим, сравнивает байт за байтом без повторной синхронизации после первого несовпадения. Это режим по умолчанию, если расширения — .exe, .com, .sys, .obj, .lib или .bin.
- /c: игнорирует различия в регистре во время сравнения текстов.
- /l: текстовый режим ASCII, сравнивает строку за строкой и пытается повторно синхронизироваться после несовпадения. Это режим по умолчанию для текстовых файлов.
- /фунт: устанавливает размер внутренний линейный буфер по количеству строк. По умолчанию они 100 строки; если имеется более 100 различных последовательных строк, ФК отменяет сравнение.
- /n: отображает номера строк во время сравнения ASCII.
- /выключенный: включает файлы с атрибутом «офлайн», которые в противном случае опускаются.
- /t: не преобразует табуляции в пробелыПо умолчанию символы табуляции рассматриваются как пробелы с остановкой через каждые 8 столбцов.
- /u: сравнивает файлы как текст Unicode.
- /w: сжимает пробелы (табуляции и пробелы) при сравнении. С опцией /w fc обрабатывает длинные последовательности пробелов как один игнорирует пробелы в начале и конце строки.
- /: количество последовательных строк, которые должны совпадать после обнаружения разницы считать, что файлы снова синхронизированы. значение по умолчанию — 2.
- Маршруты и названия (архив): укажите местоположение файлов для сравнения; требуются оба имени.
- /?: показать помощь на консоли.
Когда вы делаете сравнение ASCIIfc форматирует вывод по определенному шаблону, чтобы вы могли сразу понять, что изменилось. Типичный порядок таков: первое имя файла, отличные строки из первой, первая строка, которая совпадает с обоими, второе имя файла, отличные строки из второй и первая строка, которая совпадает снова..
В сравнениях двоичные файлы, несоответствия отображаются с другим адресом и форматом байтов. Обозначения, которые вы увидите, соответствуют схеме:
<XXXXXXXX: YY ZZ>
здесь, XXXXXXXX — относительный адрес в шестнадцатеричном формате от начала файла, а YY/ZZ являются различные шестнадцатеричные значения в file1 y file2 соответственно. Адреса начинаются с 00000000 и увеличиваются по мере того, как fc проходит байты..
Подстановочные знаки, буферы и специальные сообщения
ФК признает шутники (* y ?) в именах файлов. Если вы используете подстановочный знак в первом аргументе, сравнит все файлы, соответствующие шаблону для файла (или набора), указанного во втором аргументе. Если подстановочный знак присутствует во втором аргументе, fc повторно использует соответствующее имя из первого аргумента..
Для сравнения ASCII fc использует внутренний буфер, способный хранить 100 строк по умолчанию. Если файлы превышают этот диапазон и не могут быть повторно синхронизированы с совпадениями, ФК останавливается и отображает:
Resynch failed. Files are too different.
При сравнении двоичных файлов больше, чем доступная память, fc не терпит неудачу: обрабатывает обе части, перекрывая следующую часть в памяти и обеспечивает ту же производительность, как если бы они полностью подходили друг другу.
Практические примеры использования
Сравнить два текстовых отчета и просмотреть сокращенный результат так же просто, как запустить: в режиме ASCII с обзором блоков различий:
fc /a monthly.rpt sales.rpt
Если вы хотите, сравнить два пакетных файла в двоичном формате и посмотреть адреса, где байты отличаются, попробуйте:
fc /b profits.bat earnings.bat
Вывод может включать строки, такие как адреса и байты в шестнадцатеричном формате, и если один из них длиннее, появится предупреждение типа FC: earnings.bat длиннее, чем profits.bat. Если оба файла идентичны, fc укажет, что различий нет. с сообщением, похожим на:
Comparing files profits.bat and earnings.bat
FC: no differences encountered
Вы также можете создать перекрестную ссылку на файл со всеми .bat-файлами в текущем каталоге:
fc *.bat new.bat
Или сравните файл с таким же названием на другом диске:
fc c:new.bat d:*.bat
И для сопоставить по имени все файлы .bat в корне диска C: с файлами в диске D:
fc c:*.bat d:*.bat
Работаем из CMD шаг за шагом
Если вы предпочитаете экскурсию, вы можете открыть Командная строка как администратор, перейдите в рабочую папку и запустите сравнения. Пример:
- Абрир CMD с повышенными разрешениями от поисковой системы.
- Перейти к папке содержащий файлы, например:
cd C:\Users\tuusuario\Downloads. - Сравнить в обычном режиме (текст):
fc archivo1.txt archivo2.txt. - Сравнить в ASCII (строка за строкой):
fc /L archivo1.txt archivo2.txt. - См. сводные блоки когда меняется только первая строка:
fc /a archivo1.txt archivo2.txt. - Сравнить в Юникоде где уместно:
fc /u archivo1.txt archivo2.txt. - Применить подстановочные знаки Чтобы сравнить несколько TXT-файлов с одним файлом:
fc *.txt archivo1.txt.
Имейте в виду, что Если вы выполните эти команды в PowerShell, чтобы избежать псевдонима Format-Custom, использовать fc.exe явно (например, fc.exe /a ...). Таким образом, вы гарантированно вызовете компаратор файлов..
Ключевые различия: ASCII/Unicode и двоичный код
В режиме ASCII o Unicode, fc понимает концепцию линии и позволяет пронумеровать их (/н), игнорировать регистр (/c), компактные пространства (/w) или уважать вкладки (/т). Это идеально подходит для кода, отчетов, конфигураций и любых текстовых файлов..
режим двоичный (/b) обрабатывает файл как последовательность байтов. Не синхронизируется повторно после первого несовпадения и это идеальный способ проверить, что два исполняемых файла, библиотеки или других двоичных файла абсолютно одинаковы. Если вам нужно проверить целостность побайтно, то это ваш способ..
Помимо выбора режима, вы можете настроить ресинхронизация в текстовых сравнениях с / требовать более (или менее) равных линий после смещения перед повторным выравниванием. Значение по умолчанию — 2..
Для сравнения шумных помещений используйте /w и вы забудете о различиях из-за табуляции или лишних пробелов, пока /t Это поможет вам, если вы хотите, чтобы вкладки считались настоящими вкладками. Эти два параметра имеют значение для файлов с вкладками или с различными отступами..
Результаты дампа и большие файлы
Если вывод большой, его чтение в консоли может быть нецелесообразным. Перенаправляет вывод в файл чтобы спокойно проанализировать его или поискать закономерности:
fc archivo1.txt archivo2.txt > diff.txt
Так вы сохраняете полный отчет en diff.txt и вы можете открыть его в своем любимом редакторе, поделиться им или создать его версию. Этот трюк особенно полезен с бревна или очень длинные списки.
Коды выхода
Если вы вызываете fc из скриптов или автоматизированных задач, вас интересует его код выхода. На окнах, наиболее распространенными признаками являются:
| Код выхода | Смысл |
|---|---|
| 0 | Файлы идентичны.. |
| 1 | Файлы разные. |
| 2 | Произошла ошибка во время сравнения. |
В варианте FreeDOS другие задокументированы ОШИБКА дополнительные сведения, связанные с недопустимыми параметрами или сбоями при открытии/нахождении файлов. Помните, что семантика может различаться на разных платформах..
Интегрированные альтернативы и сопутствующие утилиты
Помимо fc, в Windows есть дополнительные утилиты, которые могут быть очень полезны в зависимости от сценария. Windiff.exe предоставляет графический интерфейс для просмотра текстовых различий и визуального сравнения папок. В Windows 2000 и более поздних версиях он был включен в Support\Tools на оригинальном компакт-диске. (устанавливается с помощью Setup.exe), а также в пределах Support.cab каждого пакета обновления. В Windows NT 4.0 он распространялся вместе с Resource Kit..
С Windiff вы можете сравнить два файла или целые деревья каталогов, чередуя между режим контура (сводка статуса) и расширенный режим (построчные различия). Результаты имеют цветовую кодировку., а из меню вы можете сфокусироваться только на левом файле, только на правом файле или на обоих. Он также поддерживает запуск из командной строки и имеет файл справки (Windiff.hlp)..
Еще один классический консольный инструмент — Comp.exe, подходит для сравнения файлов ASCII и двоичных файлов, даже между командамиТипичный пример для контрастные библиотеки DLL между машинами было бы:
comp C:\Winnt\System32\*.dll \\DifferentComputerName\C$\Winnt\System32\*.dll
Если вам нужно проверить, что локальный файл и удаленный файл идентичны и вы не можете сравнивать их напрямую, исторический ресурс должен использовать внешний компрессор типа Pkzip.exe с обеих сторон с нулевым сжатием (pkzip -e0) и проверьте CRC32 с pkzip -v. Если CRC совпадают, файлы идентичны.Ответственность за продукцию сторонних производителей, подобную этой, несут их производители.
Особенности fc в FreeDOS
Версия fc в FreeDOS Он расширяет спектр возможностей и представляет несколько нюансов. В дополнение к классическим переключателям (/A, /B, /C, /L, /N, /T, /U, /W), включает в себя другие, такие как:
- /ЛБн: Устанавливает максимальное количество различных последовательных строк ASCII в n.
- / Mn: предел разницы в двоичном коде en n байт (по умолчанию 20, с /М0 (неограниченно). Используйте /M без числа эквивалентно /М0.
- /Q: не показывает подробный список различий.
- /R: показывает краткий заключительный отчет (всегда активен с /S).
- /S: спускается в подкаталоги для расширения области сравнения.
- /X: скрывает строки контекста в сравнении текста.
- /ннн: устанавливает минимальное количество последовательных совпадающих строк для повторной синхронизации.
В FreeDOS, ФК знает о длинных названиях когда система их поддерживает, и в двоичном режиме отображает смещения, шестнадцатеричные значения и печатные символы ASCII когда это применимо. По умолчанию двоичное сравнение останавливается после 20 различий., если вы не используете /М0. Существует известное ограничение: в текстовом режиме только первые 32765 строк а остальные игнорируются. Коды выхода включают полное совпадение, обнаруженные различия, недопустимые параметры, файл не найден или ошибки открытия..
Страстный писатель о мире байтов и технологий в целом. Мне нравится делиться своими знаниями в письменной форме, и именно этим я и займусь в этом блоге: покажу вам все самое интересное о гаджетах, программном обеспечении, оборудовании, технологических тенденциях и многом другом. Моя цель — помочь вам ориентироваться в цифровом мире простым и интересным способом.

