Команда FC - сравнение файлов.Формат командной строки: FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn][диск1:][путь1]имя_файла1 [диск2:][путь2]имя_файла2 или FC /B [диск1:][путь1]имя_файла1 [диск2:][путь2]имя_файла2 /A - Вывод только первой и последней строк для каждой группы различий. /B - Сравнение двоичных файлов. /C - Сравнение без учета регистра символов. /L - Сравнение файлов в формате ASCII. /Lbn - Максимальное число несоответствий для заданного числа строк. /N - Вывод номеров строк при сравнении текстовых файлов ASCII. /OFF[LINE] - Не пропускать файлы с установленным атрибутом "Автономный". /T - Символы табуляции не заменяются эквивалентным числом пробелов. /U - Сравнение файлов в формате UNICODE. /W - Пропуск пробелов и символов табуляции при сравнении. /nnnn - Число последовательных совпадающих строк, которое должно встретиться после группы несовпадающих. [диск1:][путь1]имя_файла1 - Указывает первый файл или набор файлов для сравнения. [диск2:][путь2]имя_файла2 - Указывает второй файл или набор файлов для сравнения. Для получения краткой справки используется параметр /?: FC /? Если в командной строке не задан параметр /B то сравнение выполняется построчно, с выводом результатов в виде имен файлов и несовпадающих строк: Сравнение файлов FILE1.TXT и FILE2.TXT ***** FILE1.TXTline line1 line2 head ***** FILE2.TXT строка1 строка2 head ***** В приведенном примере не совпало содержимое первых 2-х строк в файлах FILE1.TXT и FILE2.TXT. Кроме не совпавших строк, в результатах сравнения отображается первая совпавшая после них строка ( head ) Если выполняется команда сравнения двоичных файлов FC /B, то независимо от формата данных, выполняется побайтное сравнение с выдачей результатов в виде: Сравнение файлов file1.txt и file2.txt 00000001: 6C 31 00000002: 69 44 Строка 00000001: 6C 31 - означает, что смещение от начала файла равно 00000001 . В файле file1.txt поданному смещению находится байт с шестнадцатеричным значением 6C, а в файле file2.txt - 31 Примеры использования FC.EXE: fc /b etalon.exe C:\windows\system32\notepad.exe - сравнить двоичный файл etalon.exe из текущего каталога с файлом C:\windows\system32\notepad.exe fc /b D:\windows\system32\dllcache\*.exe D:\windows\system32\*.* | more - сравнить группы двоичных файлов с расширением exe из каталога D:\windows\system32\dllcache\ с файлами из каталога D:\windows\system32\. Благодаря использованию команды FC в цепочке с командой more, выдача результатов на экран выполняется в постраничном режиме. fc C:\Documents\*.txt D:\documents\*.* > C:\compare.txt - сравнить текстовые файлы в разных каталогах с записью результатов в файл C:\compare.txt. FC /LB2 C:\Documents\*.txt D:\documents\*.* > C:\compare.txt - как и в предыдущем случае, но в результатах сравнения будут отображаться не более 2-х несовпадений. Параметр /nnn позволяет управлять продолжением выполнения сравнения файлов. Например, имеется 2 текстовых файла file1.txt и file2.txt, в которых 1-я и 4-я строки различаются, а 2-я и 3-я - совпадают. В зависимости от значения /nnn утилита FC.EXE может либо прекратить дальнейшее сравнение файлов, либо продолжить: FC /2 file1.txt file2.txt - после первой не совпавшей строки имеются 2 совпавшие ( 2-я и 3-я строки - одинаковые) - сравнение файлов будет продолжено. FC /3 file1.txt file2.txt - параметр /3 требует наличия 3- х совпадающих строк после несовпадения, поэтому дальнейшее сравнение файлов будет прекращено. FC /A /L /C file1.txt file2.txt - выполнить сравнение текстовых файлов в формате ASCII , без учета регистра символов, с отображением только первой и последней строк для каждой группы различий. В командных файлах, для проверки результата сравнения файлов используется анализ значения переменной ERRORLEVEL. По результату выполнения операции сравнения, переменная ERRORLEVEL может принимать следующие значения: 0 - файлы совпали. 1 - файлы не совпали 2 - ошибка открытия файла ( файл не найден) Пример командного файла : @echo off fc file1.txt file2.txt > nul if ERRORLEVEL 1 goto Different echo Файлы совпадают REM подпрограмма, выполняющаяся при совпадении файлов. . . exit :Different echo Файлы НЕ совпадают REM подпрограмма, выполняющаяся при различии файлов. . . |
|