Как да сравните два текстови или двоични файла с помощта на командния ред, бели кутии

На теория е най-добре да използвате специални помощни програми за тези цели, напримерWinMerge, но файловете могат да се сравняват и с помощта на най-обикновен команден ред. Командната обвивка на всички версии на Windows има чудесна командаFC. Тя ви позволява да сравнявате всякакви файлове един с друг, както текстови, така и двоични. Синтаксисът на тази команда е много прост и изглежда така:

fc /key [пълен път до първия файл] [пълен път до втория файл]

сравните

Сега за малко практика. Да приемем, че имате два файла с PHP код и единият от тях се предполага, че има някои разлики. PHP скриптовете са обикновени текстови файлове, така че в този случай ще използваме ключаL, предназначен за сравняване на текстови документи в ASCII кодиране. Ако скриптът съдържа символи на кирилица, не забравяйте да зададете кодирането на 1251 в конзолата, преди да изпълните командата за сравнение, в противен случай ще получите пукнатини в изхода. Промяната на кодирането се извършва с командата chcp 1251.

сравните

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

FC /L D:/1.php D:/2.php

сравните

Разликите между файловете се извеждат в следния ред. Първо идва името на първия файл, след това редът, където е открито несъответствието. Следва името на втория файл и разграничения низ също се обозначава по същия начин. Ако програмата открие още няколко несъответствия в други редове, всичко се повтаря. Общо помощната програма може да открие до 100 разлики, вътрешният буфер, използван от командатаfc, има такова ограничение.

При търсене на несъответствия в бинарни файлове се използва ключB. Сравнението се извършва байт по байт. По принцип по този начин е възможно да се сравнят всякаквифайлове, тъй като всички те са по същество двоични, просто когато работи с текстови формати, FC може да се ограничи до информацията кой от сравняваните обекти е по-дълъг и да завърши работата си там.

FC /B D:/1.exe D:/2.exe

Този пример сравнява два изпълними файла. Резултатът от подобно сравнение ще изглежда така:

00000040: 56 BA00000050: 65 6800000060: 43 7200000070: 6U 0A

текстови

двоични

Какви други полезни функции има командата FC? Е, например поддръжка за заместващи знаци. Ако трябва да сравните определен файлetalon.exe с други изпълними файлове в текущата директория, използвайте команда в следния формат:

fc *.exe etalon.exe

Освен това, като използвате заместващи символи, можете да сравнявате групово файлове, разположени в различни директории или дялове на твърдия диск. Какво се случва, ако сравняваните файлове са напълно идентични? Помощната програма ще покаже кратко съобщение -FC: не са намерени разлики.