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


fc

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

Синтаксис

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.
/Фунтов<n> Задает количество строк для внутреннего буфера строк значение N. Длина буфера строки по умолчанию составляет 100 строк. Если сравниваемые файлы имеют более 100 последовательных разных строк, fc отменяет сравнение.
/N Отображает номера строк во время сравнения ASCII.
/off[line] Не пропускает файлы, имеющие автономный набор атрибутов.
/T Запрещает преобразование вкладок в пробелы. Поведение по умолчанию — рассматривать вкладки как пробелы с остановками на каждой восьмой позиции символа.
/u Сравнивает файлы с текстовыми файлами Юникода.
/w Сжимает пробелы (т. е. вкладки и пробелы) во время сравнения. Если строка содержит множество последовательных пробелов или вкладок, /w обрабатывает эти символы как одно пространство. При использовании с /w фк игнорирует пробелы в начале и конце строки.
/<nnnn> Указывает количество последовательных строк, которые должны соответствовать несоответствию, прежде чем fc рассматривает файлы для повторной синхронизации. Если число сопоставленных строк в файлах меньше nnnn, fc отображает соответствующие строки в качестве различий. Значение по умолчанию равно 2.
[<drive1>:][<path1>]<filename1> Указывает расположение и имя первого файла или набора файлов для сравнения. требуется имя_файла1 .
[<drive2>:][<path2>]<filename2> Указывает расположение и имя второго файла или набора файлов для сравнения. требуется имя_файла2 .
/? Отображение справки в командной строке.

Замечания

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

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

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

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

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

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

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

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

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

    \<XXXXXXXX: YY ZZ>

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

  • Можно использовать дикие карта символы (и ?) в имени файла1 и имени файла2.* Если вы используете дикую карта в файлеname1, fc сравнивает все указанные файлы с файлом или набором файлов, указанных в filename2. Если вы используете wild карта в filename2, fc использует соответствующее значение из имени файла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