Книга: 500 типичных проблем и их решений при работе на ПК

Можно ли сравнить два файла?

Можно ли сравнить два файла?

Полезная консольная команда comp позволяет сравнивать файлы. Упрощенный синтаксис команды таков: comp файл1 файл2. Поскольку обычно приходится сравнивать файлы с одинаковыми именами (чтобы выявить, были ли внесены изменения), то необходимо знать одно правило: если в качестве файл2 не указано имя, предполагается, что оно совпадает с именем файл1. Иными словами, указав в командной строке comp c:1.txt f:, вы подразумеваете, что на диске F: тоже есть файл с именем 1.txt.

При запуске команды comp вообще без параметров программа попросит вас уточнить имена файлов и параметры.

Данная команда предусматривает несколько режимов вывода информации о несовпадениях: десятичный (ключ /d), символьный (ключ /a) и с выводом номера строки (ключ /l).

На мой взгляд, удобнее всего сравнивать файлы, используя ключи /a и /l, так как в этом случае информация предоставляется в наиболее удобном виде: видно, какие символы и в какой строке не совпадают. Пример результата сравнения двух файлов представлен в листинге 10.1.

Листинг 10.1. Результат сравнения

Compare error at LINE 16

file1 = s

file2 = e

Если вы попытаетесь «в лоб» сравнить файлы разных размеров, то вас постигнет неудача. Завершив работу, comp выдаст только сообщение Разные размеры файлов. А ведь хотелось бы знать, с какого момента начинают появляться различия. Чтобы это выяснить, придется воспользоваться ключом /n, с помощью которого устанавливается количество сравниваемых строк. Это выглядит примерно так: comp c:1.txt f: /n=16.

Сравнить содержимое двух каталогов, например локального и расположенного на сервере, можно командой comp g:doc serverusersdoc.

Не следует пренебрегать символами подстановки (* и ?). К примеру, команду из предыдущего случая можно преобразовать в comp g:doc*.xls serverusersdoc. Такая команда гораздо эффективнее, если вас интересуют только документы Microsoft Excel.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.087. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз