Поделиться через


fc

Сравнивает два файла или наборы файлов и отображает различия между ними.

Syntax

fc /a [/c] [/l] [/lb<n>] [/n] [/off[line]] [/t] [/u] [/w] [/<nnnn>] [<drive1>:][<path1>]<filename1> [<drive2>:][<path2>]<filename2>
fc /b [<drive1:>][<path1>]<filename1> [<drive2:>][<path2>]<filename2>

Parameters

Parameter Description
/a Сокращает выходные данные сравнения ASCII. Вместо того, чтобы отображать все линии, которые отличаются, fc отображает только первую и последнюю строки для каждого набора различий.
/b Сравнивает два файла в двоичном режиме, байт байтов и не пытается повторно выполнить повторную синхронизацию файлов после поиска несоответствия. Это режим по умолчанию для сравнения файлов со следующими расширениями файлов: .exe, .com, .sys, .obj, .lib или .bin.
/c Игнорирует регистр буквы.
/l Сравнивает файлы в режиме ASCII, строковой строке и пытается повторно изменить размер файлов после поиска несоответствия. Это режим по умолчанию для сравнения файлов, кроме файлов со следующими расширениями файлов: .exe, .com, .sys, .obj, lib или .bin.
/lb<n> Устанавливает количество строк для внутреннего буфера строк равным N. Длина буфера строк по умолчанию равна 100 строкам. Если сравниваемые файлы содержат более 100 последовательных отличающихся строк, fc отменяет сравнение.
/n Отображает номера строк во время сравнения ASCII.
/off[line] Не пропускает файлы, имеющие автономный набор атрибутов.
/t Запрещает fc преобразовывать табуляцию в пробелы. Поведение по умолчанию — рассматривать вкладки как пробелы с остановками на каждой восьмой позиции символа.
/u Сравнивает файлы с текстовыми файлами Юникода.
/w Сжимает пробелы (т. е. вкладки и пробелы) во время сравнения. Если строка содержит много последовательных пробелов или табуляций, /w обрабатывает эти символы как один пробел. При использовании с /wfc игнорирует пробелы в начале и конце строки.
/<nnnn> Указывает количество последовательных строк, которые должны совпасть в случае несоответствия, прежде чем fc сочтет файлы повторно синхронизированными. Если количество совпадающих строк в файлах меньше nnnn, fc отображает совпадающие строки как разницы. Значение по умолчанию — 2.
[<drive1>:][<path1>]<filename1> Указывает расположение и имя первого файла или набора файлов для сравнения. filename1 является обязательным.
[<drive2>:][<path2>]<filename2> Указывает расположение и имя второго файла или набора файлов для сравнения. filename2 является обязательным.
/? Отображает справку в командной строке.

Exit codes

В следующей таблице перечислены все fc.exe код выхода и описание.

Exit code Description
0 Файлы идентичны.
1 Файлы отличаются.
2 Произошла ошибка во время сравнения.

Remarks

  • Эта команда реализуется c:\WINDOWS\fc.exe. Эту команду можно использовать в PowerShell, но обязательно укажите полный исполняемый файл (fc.exe), так как "fc" также является псевдонимом для format-Custom.

  • Когда вы используете fc для сравнения ASCII, fc отображает различия между двумя файлами в следующем порядке:

    • Имя первого файла

    • Строки из filename1 , которые различаются между файлами

    • Первая строка для сопоставления в обоих файлах

    • Имя второго файла

    • Строки из filename2 , которые отличаются

    • Первая строка для сопоставления

  • /b отображает несоответствия, обнаруженные во время двоичного сравнения, в следующем синтаксисе:

    \<XXXXXXXX: YY ZZ>

    Значение XXXXXXXX указывает относительный шестнадцатеричный адрес для пары байтов, измеренный от начала файла. Адреса начинаются с 000000000. Шестнадцатеричные значения для YY и ZZ представляют собой несовпадающие байты от filename1 и filename2 соответственно.

  • Вы можете использовать подстановочные знаки (* и ?) в filename1 и filename2. Если вы используете подстановочный знак в filename1, fc сравнивает все указанные файлы с файлом или набором файлов, указанным в filename2. Если вы используете подстановочный знак в filename2, fc использует соответствующее значение из filename1.

  • При сравнении файлов ASCII fc использует внутренний буфер (достаточно большой, чтобы вместить 100 строк) в качестве хранилища. Если размер файлов превышает размер буфера, fc сравнивает, что он может загрузить в буфер. Если fc не находит совпадение в загруженных частях файлов, он останавливается и выводит следующее сообщение:

    Resynch failed. Files are too different.

    При сравнении двоичных файлов, размер которых превышает доступный объем памяти, fc полностью сравнивает оба файла, накладывая участки памяти на следующие участки с диска. Выходные данные совпадают с тем, что для файлов, которые полностью соответствуют памяти.

Examples

Чтобы провести ASCII-сравнение двух текстовых файлов, monthly.rpt и sales.rpt, и отобразить результаты в сокращенном формате, введите:

fc /a monthly.rpt sales.rpt

Чтобы выполнить двоичное сравнение двух батников, profits.bat и earnings.bat, введите:

fc /b profits.bat earnings.bat

Результаты, аналогичные следующему:

00000002: 72 43
00000004: 65 3A
0000000E: 56 92
000005E8: 00 6E
FC: earnings.bat longer than profits.bat

Если файлы profits.bat и earnings.bat идентичны, fc отображает следующее сообщение:

Comparing files profits.bat and earnings.bat
FC: no differences encountered

Чтобы сравнить каждый файл .bat в текущем каталоге с файлом new.bat, введите:

fc *.bat new.bat

Чтобы сравнить new.bat файла на диске C с файлом new.bat на диске D, введите:

fc c:new.bat d:*.bat

Чтобы сравнить каждый пакетный файл в корневом каталоге на диске C с тем же именем в корневом каталоге на диске D, введите:

fc c:*.bat d:*.bat
  • ключа синтаксиса Command-Line