Если вам часто приходится иметь дело с REG-файлами или вообще с реестром, наверняка вы уже сталкивались с необходимостью сравнить два ключа реестра на предмет отличий. Поскольку файлы реестра являются текстовыми, проанализировать их можно с помощью любой программы или даже онлайн-сервиса для сравнения текстовых документов. Правда, у такого подхода есть один недостаток – большинство подобных приложений сравнивают файлы построчно, тогда как файлы реестра лучше сравнивать логически.
Поэтому использовать для сравнения файлов реестра лучше узкоспециализированные инструменты, например, бесплатную консольную утилиту Regdiff.
Эта небольшая портативная программка позволяет не только сравнивать, но также объединять кусты, разделы и REG-файлы, автоматически удаляя или добавляя ключи, параметры и значения с использованием специального режима.
Чтобы вам стало все понятно, приведем несколько примеров работы с этим инструментом.
Содержание статьи:
Сравнение двух REG-файлов
У нас есть два экспортированных в REG-файлы ключа HKLM\SOFTWARE, в которых имеются неизвестные пока нам отличия. Давайте узнаем, чем именно отличаются эти оба файла.
Запускаем командную строку или PowerShell и переходим в расположение исполняемого файла утилиты. Туда же лучше скопировать и сравниваемые файлы, чтобы не заморачиваться лишний раз с полными путями.
Формируем и выполняем команду
./regdiff.exe software1.reg software2.reg
Утилита прочитает оба файла и выведет в консоль полный список изменений. Например, из данного скриншота видно, что в файле software2.reg утилита Regdiff обнаружила в общей сложности 28 отличий.
Так, сообщение key missing in 'software2.reg': указывает, что во втором файле реестра отсутствует целый ключ. А вот так выглядит сообщение, указывающее на изменение значения параметра:
- in HKEY_LOCAL_MACHINE/SOFTWARE/Google/Uрdate
-- value LastStartedAU (Type DWord)
----- 1659965206
----- 1659965808
Говоря простым языком, в указанном ключе реестра было изменено значение DWORD параметра LastStartedAU. В первом файле в качестве значения было задано число 1659965206, а во втором файле значение уже равняется 1659965808.
Сравнение раздела и REG-файла
Сравнивать можно не только файлы с файлами, но и ключи с файлами.
Тут всё так же просто, в приведенной выше команде нужно лишь заменить имя первого файла сравниваемым ключом реестра.
./regdiff.exe ключ_реестра REG-файл
Файлы отличия и слияния
Еще одной полезной функцией утилиты является создание файлов различий и слияния.
Допустим, у вас есть два имеющих отличия файла, и вы хотите не просто их сравнить, но и экспортировать найденные отличия в отдельный файл.
Для этого в конец команды сравнения нужно добавить параметр /diff и указать имя создаваемого файла, вот так:
./regdiff.exe 1.reg 2.reg /diff differences.reg
При этом будут действовать следующие правила:
- Если ключ отсутствует в файле 1, но имеется во втором файле, ключ будет добавлен.
- Если ключ отсутствует в файле 2, но имеется в файле 1, он будет удален.
- То же самое касается параметров и их значений.
Аналогичным образом можно создавать файлы слияний, то есть файлы, в которых содержимое обоих REG-файлов будет объединено в один файл.
Для этого в конец команды добавляется параметр /merge плюс имя объединенного файла:
./regdiff.exe 1.reg 2.reg /diff merged.reg
Правила при этом будут действовать следующие:
- Вся информация из файла 2 включается в файл 1.
- Если ключ имеется в файле 1, но отсутствует в файле 2, ключ удаляется.
- То же самое касается параметров с их значениями.
И это еще не все возможности инструмента.
Утилитой Regdiff также поддерживается экспорт файлов реестра, в том числе в формате XML, сортировка их содержимого по алфавиту, удаление из файлов пустых ключей и запись данных из файлов в реестр.
Получить более подробную информацию об инструменте и его возможностях вы можете на сайте разработчика p-nand-q.com.
Добавить комментарий