Команда FC

Сравнивает два файла и выводит различия между ними. Для сравнения файлов ASCII используйте синтаксис:


     FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/W]

        [/nnnn][диск1:][маршрут1]имя_файла1

        [диск2:][маршрут2]имя_файла2

а для сравнения файлов в двоичном формате:

     FC /B [диск1:][маршрут1]имя_файла1

           [диск2:][маршрут2]имя_файла2

Параметр [диск1:][маршрут1]имя_файла1 задает расположение и имя первого файла, который вы хотите сравнить. Параметр [диск2:][маршрут2]имя_файла2 задает расположение и имя второго файла.

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

/L сравнивает файлы в режиме ASCII. FC сравнивает два файла построчно и пытается вновь синхронизировать файлы после несовпадения. Этот режим используется по умолчанию при сравнении файлов с расширениями, отличными от .EXE, .COM, .SYS, .OBJ, .LIB или .BIN.

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

Параметр /N выводит в процессе сравнения ASCII номера строк.

/T не расширяет табуляции в пробелы. По умолчанию табуляция интерпретируется как 8 пробелов.

/W выполняет при сравнении компрессию разделителей (табуляций и пробелов). Если строка содержит слишком много последовательных пробелов или табуляций, то при указании параметра /W они интерпретируются как один пробел. При задании /W команда FC игнорирует (и не сравнивает) пробелы в начале и в конце строки.

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

/B сравнивает файлы в двоичном режиме. FC сравнивает два файла побайтно и не пытается ресинхронизировать их после несовпадения. Для файлов с расширениями .EXE, .COM, .SYS, .OBJ, .LIB или .BIN этот режим используется по умолчанию.

При использовании FC для сравнения ASCII MS-DOS сообщает о различиях между файлами, выводя имя первого файла, последнюю сравниваемую строку первого файла, последнюю совпавшую строку в обоих файлах, несовпадающие в обоих файлах строки из файла "имя_файла1" и первую сравниваемую строку в обоих файлах. Затем MS-DOS выводит имя второго файла, последнюю сравниваемую строку, различающиеся строки из файла "имя_файла2", а также следующую сравниваемую строку.

Для вывода отчета о несовпадениях при двоичном сравнении MS-DOS использует следующий формат:


     xxxxxxxx: yy zz

где значение xxxxxxxx задает относительный шестнадцатиричный адрес для пары байт, считая от начала файла. Адреса начинаются с 00000000. Шестнадцатиричные значения yy и zz представляют несовпавшие байты из файлов "имя_файла1" и "имя_файла2".

В любом из имен файлов вы можете использовать трафаретные символы (* и ?). При указании трафаретного символа в имени "имя_файла1" FC сравнивает все заданные файлы с файлом, заданным именем "имя_файла2". Если вы указываете трафаретный символ в имени "имя_файла2", FC использует соответствующее значение из параметра "имя_файла1".

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


     Resynch failed. Files are too different.

     (Синхронизация не выполнена, файлы слишком различны.)

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

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


     fc /a jenny.dat mike.dat

При идентичности файлов FC выводит сообщение:

     FC: no differences encountered

     (FC: различий не найдено)

Назад | Содержание | Вперед