Сравнить два exe файла
Команда 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
line1
line2
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 подпрограмма, выполняющаяся при различии файлов. . .
Сравнивает два файла или набора файлов и отображает различия между ними.
Дополнительная информация
В Microsoft Windows 2000 и более поздних Windiff.exe в исходном CD-диске в папке Средства \ поддержки. Чтобы установить средства поддержки, запустите Setup.exe из папки Средства \ поддержки. Windiff.exe также находится в Support.cab файле. Support.cab входит в каждый пакет службы.
В microsoft Windows NT, Windiff.exe включен в набор ресурсов Windows NT 4.0. Чтобы скачать Windows NT 4.0 Средства поддержки комплекта ресурсов, посетите следующий веб-сайт Microsoft:
Средства поддержки набора ресурсов Windows NT ms Windows NT 4.0
Утилита Windiff.exe графически иллюстрирует различия между текстовыми файлами ASCII, которые вы указываете, или разницей между папками, которые содержат текстовые файлы ASCII, и особенно полезна для сравнения исходных кодов программы. Вы можете использовать Windiff.exe для сравнения целых деревьев подмостки. На дисплее показана сводка состояния сравнения списка файлов (режим контура) или подробное сравнение файлов (расширенный режим).
Чтобы сравнить два файла с помощью Windiff.exe, выполните следующие действия:
В меню File нажмите кнопку Сравнение файлов.
В диалоговом окне Выберите первый файл, найдите и нажмите имя файла для первого файла в сравнении, а затем нажмите Кнопку Открыть.
В диалоговом окне Выберите второй файл найдите и нажмите имя файла для второго файла в сопоставлении, а затем нажмите кнопку Открыть.
Сведения в правой области указывают, есть ли разница в файле.
Чтобы просмотреть фактические различия в файлах, щелкните первую строку в результатах Windiff.exe, а затем в меню Расширение нажмите кнопку Только левый файл, только правый файл , или Оба файла.
Полученные в цвете результаты указывают на различия в файле.
Чтобы сравнить две папки с помощью Windiff.exe, выполните следующие действия:
В меню File щелкните Сравнение каталогов.
В диалоговом окне Выбор каталогов введите два имена папок, которые необходимо сравнить в полях Dir1 и Dir2. Если вы хотите включить подмостки, щелкните, чтобы выбрать контрольный ящик Include subdirectories.
Сведения в правой области указывают на различия между двумя папками.
Чтобы просмотреть фактические различия в файлах, щелкните строку, которую вы хотите в результатах Windiff.exe вывода, а затем в меню Расширение нажмите кнопку Только левый файл, только правый файл , или Оба файла .
Полученные в цвете результаты указывают на различия в файле.
Вы также можете Windiff.exe из командной строки. Сведения о том, как это сделать, или дополнительные сведения об использовании Windiff.exe см. в Windiff.exe справке (Windiff.hlp).
Существуют и другие утилиты, доступные помимо Windiff.exe, которые можно использовать для сравнения локальных ASCII и двоичных файлов или сравнения локального файла с сомнительным файлом на удаленном сайте.
Чтобы сравнить два файла или группы файлов на локальном сайте, можно использовать команды Fc.exe и Comp.exe файлов. Обе команды запускаются из командной подсказки.
Вы можете использовать Fc.exe для сравнения двух ASCII или двоичных файлов на основе строки за строкой. Он предлагает несколько вариантов командной строки. Например, используйте команду fc /b для сравнения двух двоичных файлов. Полный список параметров введите fc /? в командной подсказке.
Вы можете Comp.exe для сравнения ASCII и двоичных файлов и сравнения групп файлов в двух разных папках. Например, чтобы сравнить все .dll в одной папке со всеми файлами .dll в одной папке на другом компьютере, введите следующее в командной подсказке:
Чтобы сравнить локальный файл с удаленным, можно использовать утилиту, например, сторонний Pkzip.exe. Для этого используйте Pkzip.exe почтовый индекс файла на локальных и удаленных сайтах. Так как отжимание большого файла может занять некоторое время, быстрее использовать параметр pkzip-e0 (без сжатия). После того как вы заперли файлы, используйте команду, чтобы изучить значение проверки циклической pkzip -v избыточности (CRC32) для .zip файлов. Если значения CRC32 одинаковы для удаленных и локальных сайтов, файлы одинаковы.
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.
Приветствую всех читателей!
Сегодняшняя заметка будет относиться к офисной тематике. (а точнее: речь пойдет о сравнении нескольких документов между собой).
Представьте , у вас есть парочка документов, в которых частично различается текст (например, где-то уже исправленный, а где-то "старый", с ошибками. ). И теперь нужно найти между ними различия, принять их к сведению, и собрать из 2-х файлов один.
Можно, конечно, сориентироваться по дате — однако, далеко не всегда такой подход будет уместен. Но вот если бы какая-то программа нашла и выделила несовпадающие символы (строки). это было бы здорово! 👌
Собственно, о нескольких подобных примерах и пойдет речь в этой заметке.
Нюансы: о каких файлах идет речь
Текстовые файлы
И так, начать заметку (я думаю) стоит с самых обычных текстовых файлов (коих большинство). Задача перед нами будет следующая : есть два почти одинаковых текстовых файла (в формате TXT), и нужно найти в них отличные строки и символы, и подсветить их (о чем я и сказал выше).
Для работы нам понадобится блокнот 👉 Notepad++ (ссылка на офиц. сайт) . Установка у программы стандартная (поэтому ее опускаю).
Далее делаем следующее:
-
запускаем Notepad++ и открываем меню "Плагины / управление плагинами" — в списке плагинов находим "Compare" и соглашаемся на его установку (см. пример ниже 👇);
Устанавливаем плагин в Notepad++
Открываем два нужных файла и жмем кнопку сравнения
Места, где есть различия, были выделены! // Notepad++
Синтаксис
Параметры
Параметр | Описание |
---|---|
/a | Сокращает выходные данные сравнения ASCII. Вместо отображения всех строк, которые отличаются, FC отображает только первую и последнюю строку для каждого набора различий. |
/b | Сравнивает два файла в двоичном режиме, байт по байтам и не пытается повторно синхронизировать файлы после обнаружения несоответствия. Этот режим используется по умолчанию для сравнения файлов со следующими расширениями: .exe, com, .sys, obj, lib или bin. |
/C | Игнорирует регистр букв. |
/l | Сравнивает файлы в режиме ASCII, построчно и пытается повторно синхронизировать файлы после обнаружения несоответствия. Этот режим используется по умолчанию для сравнения файлов, за исключением файлов со следующими расширениями файлов: .exe, com, .sys, obj, lib или bin. |
/лб | Задает число строк для внутреннего буфера строки равным N. Длина буфера строки по умолчанию составляет 100 строк. Если сравниваемые файлы содержат более 100 последовательных строк разной, FC отменяет сравнение. |
/n | Отображает номера строк во время сравнения ASCII. |
"/OFF" [строка] | Не пропускает файлы с установленным атрибутом "вне сети". |
/t | Предотвращает преобразование табуляций в пробелы с FC . Поведение по умолчанию заключается в том, что символы табуляции обрабатываются как пробелы, а для каждой восьмой позиции — остановка. |
/U | Сравнивает файлы как текстовые файлы в Юникоде. |
/W | Сжимает пробелы (т. е. знаки табуляции и пробелы) во время сравнения. Если строка содержит несколько последовательных пробелов или знаков табуляции, /w рассматривает эти символы как один пробел. При использовании параметра /wFC игнорирует пробелы в начале и конце строки. |
/ | Указывает число последовательных строк, которые должны совпадать после несоответствия, прежде чем FC считает файлы для повторной синхронизации. Если число совпадающих строк в файлах меньше nnnn, FC отображает соответствующие строки в виде различий. Значение по умолчанию — 2. |
[:][] | Указывает расположение и имя первого файла или набора сравниваемых файлов. требуется имя_файла1 . |
[:][] | Указывает расположение и имя второго файла или набора сравниваемых файлов. требуется имя_файла2 . |
/? | Отображение справки в командной строке. |
Комментарии
Эта команда имплеметед by c:\WINDOWS\fc.exe. Эту команду можно использовать в PowerShell, но не забудьте проделать полный исполняемый файл (fc.exe), так как "FC" также является псевдонимом для формата Custom.
При использовании FC для сравнения в ASCII, FC отображает различия между двумя файлами в следующем порядке:
Имя первого файла
Строки из имя_файла1 , отличные от файлов
Первая строка для сопоставления в обоих файлах
Имя второго файла
Строки из имя_файла2 различаются
Первая строка для сопоставления
/b выводит несоответствия, найденные во время двоичного сравнения в следующем синтаксисе:
Значение XXXXXXXX задает относительный шестнадцатеричный адрес для пары байтов, измеряемой от начала файла. Адреса начинаются с 00000000. Шестнадцатеричные значения для YY и ZZ представляют несовпадающие байты из имя_файла1 и имя_файла2соответственно.
В имя_файла1 и имя_файла2можно использовать подстановочные знаки ( * и ?). Если в имя_файла1используется подстановочный знак, FC сравнивает все указанные файлы с файлом или набором файлов, указанным параметром имя_файла2. Если в параметре имя_файла2используется подстановочный знак, то FC использует соответствующее значение из имя_файла1.
Resynch failed. Files are too different.
При сравнении двоичных файлов, размер которых превышает объем доступной памяти, FC полностью сравнивает оба файла, наполняя участки памяти следующими частями от диска. Результат будет таким же, как и для файлов, которые полностью умещаются в памяти.
Картинки
Вообще, две картинки чаще всего сравнивают просто на "глазок", ставя их одну к одной. Впрочем, для этого можно использовать и спец. утилиты — например, те, которые используются для поиска дубликатов файлов. Я на страницах блога как-то упоминал о них, ссылка ниже в помощь.
Обратите внимание , программа Image Comparer 👇 автоматически выделят на картинках те области, к которым стоит присмотреться (либо есть различие, либо они не четкие и нельзя точно сказать наверняка. ).
This article describes how to use the Windiff.exe utility, a tool that graphically compares the contents of two ASCII files, or the contents of two folders that contain ASCII files, to verify whether they are the same. The file byte count and the creation date are not reliable indications.
Applies to: Windows Server 2012 R2, Windows 10 - all editions
Original KB number: 159214
More Information
In Microsoft Windows 2000 and later, Windiff.exe is included on the original CD-ROM in the Support\Tools folder. To install the support tools, run Setup.exe from the Support\Tools folder. Windiff.exe is also in the Support.cab file. Support.cab is included with every service pack.
In Microsoft Windows NT, Windiff.exe is included in the Windows NT 4.0 Resource Kit. To download the Windows NT 4.0 Resource Kit Support Tools, visit the following Microsoft Web site:
MS Windows NT 4.0 Resource Kit Support Tools
The Windiff.exe utility graphically illustrates the differences between ASCII text files that you specify, or the difference between folders that contain ASCII text files, and is especially useful for comparing program source code. You can use Windiff.exe to compare whole subfolder trees. The display shows either a summary of the comparison status of a list of files (outline mode) or a detailed line-by-line comparison of the files (expanded mode).
To compare two files by using Windiff.exe, follow these steps:
On the File menu, click Compare Files.
In the Select First File dialog box, locate and then click a file name for the first file in the comparison, and then click Open.
In the Select Second File dialog box, locate and then click a file name for the second file in the comparison, and then click Open.
The information in the right pane indicates whether there is a file difference.
To view the actual file differences, click the first line in the Windiff.exe output results, and then on the Expand menu, click Left File Only, Right File Only, or Both Files.
The color-coded results indicate what the file differences are.
To compare two folders by using Windiff.exe, follow these steps:
On the File menu, click Compare Directories.
In the Select Directories dialog box, type the two folder names that you want to compare in the Dir1 and Dir2 boxes. If you want to include subfolders, click to select the Include subdirectories check box.
The information in the right pane indicates the differences between the two folders.
To view the actual file differences, click the line that you want in the Windiff.exe output results, and then on the Expand menu, click Left File Only, Right File Only, or Both Files.
The color-coded results indicate what the file differences are.
You can also run Windiff.exe from the command line. For information about how to do so, or for more information about how to use Windiff.exe, see the Windiff.exe Help file (Windiff.hlp).
There are other utilities that are available besides Windiff.exe that you can use to compare local ASCII and binary files, or to compare a local file to a questionable file at a remote site.
To compare two files or groups of files at a local site, you can use the Fc.exe and the Comp.exe file compare commands. Both commands are run from a command prompt.
You can use Fc.exe to compare two ASCII or binary files on a line-by-line basis. It offers several command-line options. For example, use the fc /b command to compare two binary files. For a complete list of options, type fc /? at a command prompt.
You can use Comp.exe to compare ASCII and binary files and to compare groups of files in two different folders. For example, to compare all the .dll files in one folder to all the .dll files in the same folder on a different computer, type the following at a command prompt:
To compare a local file to a remote file, you can use a utility such as the third-party compression utility Pkzip.exe. To do so, use Pkzip.exe to zip the file at both the local and the remote sites. Because zipping a large file can take time, it is faster to use the pkzip -e0 (no compression) option. After you have zipped the files, use the pkzip -v command to examine the cyclic redundancy check (CRC32) value for the .zip files. If the CRC32 values are the same for the remote and local sites, the files are the same.
If you use Pkzip.exe to zip a file before you send the file to a remote site, because of the embedded CRC32, you will receive an error message during the unzip process if the file is damaged in transit. If you receive no error message, the file was conveyed without damage.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.
Примеры
Чтобы выполнить сравнение в ASCII двух текстовых файлов: Monthly. rpt и Sales. rpt, и отобразить результаты в сокращенном формате, введите:
Чтобы создать двоичное сравнение двух пакетных файлов, profits.bat и earnings.bat, введите:
Отобразятся результаты, аналогичные приведенным ниже.
Чтобы сравнить каждый файл .bat в текущем каталоге с файлом new.bat, введите:
Чтобы сравнить файловый new.bat на диске C с файлом new.bat на диске D, введите:
Чтобы сравнить каждый пакетный файл в корневом каталоге диска C с файлом с тем же именем в корневом каталоге на диске D, введите:
В этой статье описывается, как использовать утилиту Windiff.exe, средство, которое графически сравнивает содержимое двух файлов ASCII или содержимое двух папок, содержащих файлы ASCII, для проверки того, являются ли они одинаковыми. Количество byte файла и дата создания не являются надежными указаниями.
Применяется к: Windows Server 2012 R2, Windows 10 — все выпуски
Исходный номер КБ: 159214
Summary
Sometimes you may experience unusual program behavior and may suspect that a file is damaged, or you may suspect that two files have the same byte count but different dates. Therefore, you want to make sure that they are the same. If a file is suspect, the typical solution is to recopy from a known good file. This solution may solve the problem, but it prevents you from knowing whether the original file was damaged. It can be important to determine this, as file damage can indicate an underlying network or system problem.
Др. бинарные файлы Exe, Com и пр. (возможно без расширения)
Тема очень специфичная, и я включил ее в заметку только для общей информации.
Сравнить два EXE-файла (или любых других, у которых нет расширения, и вы даже не знаете их тип данных) можно с помощью спец. редактора шестнадцатеричных, десятичных и бинарных файлов. Например, один из доступных для начинающих — это 👉 Hex Editor Neo (ссылка на сайт разработчика).
Как с ней работать : сначала необходимо запустить программу и открыть в ней оба файла (это стандартно, как и в др. софте). Далее перейти в раздел "Tools / File Comparison / Compare Files" . 👇
Hex Editor Neo — инструмент сравнения
В результате Hex Editor Neo автоматически разделит экран поровну на две части и подсветит несовпадающий код. 👇
Разумеется, для дальнейшего редактирования и более-менее осмысленной работы — необходимы определенные знания / либо точно знать, какой кусок нужно удалить, поменять (можно, конечно, поэкспериментировать. но результаты могут быть самыми разными — от ошибок при запуске отредактированного файла, до "вылетов" синих экранов).
Документы Word / Excel (+ текстовые в т.ч.)
Начну с MS Word.
Программа универсальная и позволяет сравнивать как документы формата Docx, так и обычные текстовые файлы (TXT, RTF и пр. форматы).
Делается это так (на примере Word 2019):
-
сначала необходимо открыть оба файла в Word (как правило достаточно по нужному файла кликнуть правой кнопкой мыши и в меню указать, что требуется открыть в Word, см. пример ниже 👇) ;
Открываем 2 файла в Word
Рецензирование - Сравнить (Word 2019)
Что получается в итоге // Word подсчитал сколько было мест с исправлениями (в моем случае 8!).
👉 Что касается Excel
С одной стороны — в Excel есть десятки способов, как можно сравнить две таблички между собой, с другой — в зависимости от конкретной задачи в каждом случае нужно "всё подгонять" под себя (универсального способа на все случаи жизни - нет!). 👌
Ниже приведу лишь парочку наиболее простых вариантов (разумеется, есть много др. способов решения).
-
для начала необходимо скопировать (сочетания в помощь: Ctrl+C / Ctrl+V) обе таблички на один лист в Excel (в качестве примера у меня табличка с именами 👇);
Пример двух табличек
Выделяем таблицы, и вкл. повторяющиеся значения
Все отличия были найдены!
В Excel есть одна довольно мощная функция ВПР — она позволяет сравнивать 2 таблицы и при нахождении чего-то "несовпадающего" — выполнять условие (скажем, подставить значение из одной таблицы в другую). О том, как с ней работать — показано в одной моей прошлой статье (парочка ссылок ниже).
👉 В помощь!
1) Excel: как сравнить 2 таблицы с помощью функции ВПР — см. простейший пример.
2) Повторяющиеся значения в Excel: как удалить дубликаты / уникальные строки.
Сводка
Иногда вы можете испытывать необычное поведение программы и подозревать, что файл поврежден, или вы можете подозревать, что два файла имеют один и тот же счет, но разные даты. Поэтому необходимо убедиться, что они одинаковы. Если файл является подозрительным, типичным решением является повторное исследование из известного хорошего файла. Это решение может решить проблему, но не позволяет узнать, был ли поврежден исходный файл. Это может быть важно, так как повреждение файла может указывать на проблему с сетью или системой.
Читайте также: