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


ФК

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

Синтаксис

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>

Параметры

Параметр Описание
/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 обрабатывает эти символы как одно пространство. Если используется с /w, fc пропускает пробелы в начале и конце строки.
/<nnnn> Указывает количество последовательных строк, которые должны соответствовать несоответствию, прежде чем fc считает файлы повторной синхронизацией. Если число сопоставленных строк в файлах меньше nnnn, fc отображает соответствующие строки в виде различий. Значение по умолчанию — 2.
[<drive1>:][<path1>]<filename1> Указывает расположение и имя первого файла или набора файлов для сравнения. требуется filename1.
[<drive2>:][<path2>]<filename2> Указывает расположение и имя второго файла или набора файлов для сравнения. требуется filename2.
/? Отображает справку в командной строке.

Коды выхода

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

Код выхода Описание
0 Файлы идентичны.
1 Файлы отличаются.
2 Произошла ошибка во время сравнения.

Замечания

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

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

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

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

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

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

    • Строки из имени файла2, которые отличаются

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

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

    \<XXXXXXXX: YY ZZ>

    Значение XXXXXXXXXX указывает относительный шестнадцатеричный адрес для пары байтов, измеряемый с начала файла. Адреса начинаются с 000000000. Шестнадцатеричные значения для Y и ZZ представляют несовпадение байтов из имени файла1 и имени файла2соответственно.

  • Можно использовать подстановочные знаки (* и ?) в filename1 и filename2. При использовании подстановочного знака в filename1fc сравнивает все указанные файлы с файлом или набором файлов, указанных filename2. При использовании подстановочного знака в filename2fc используется соответствующее значение из имени файла1.

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

    Resynch failed. Files are too different.

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

Примеры

Чтобы сделать сравнение 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