Дело не только в том, что сгенерированные файлы отличаются. Я заметил, что то, что происходит, когда вы используете файл .reg против файла .hiv, совсем другое
Когда вы импортируете файл .reg, вам не нужно указывать путь. Он записывает данные в ваш реестр на основе файла .reg и оставляет нетронутыми новые разделы реестра и записи, созданные между экспортом и импортом.
Принимая во внимание, что когда вы импортируете файл .hiv, вы должны указать путь. Новые ключи реестра и записи, созданные между экспортом и импортом, удаляются.
Вот пример для иллюстрации.
Создать фиктивный ключ с фиктивной записью
reg add hkcu\test
reg add hkcu\test /v entry /t REG_DWORD /d 1
Если вы запустите reg query hkcu\test
вы увидите это
HKEY_CURRENT_USER\test
(Default) REG_SZ
entry REG_DWORD 0x1
Экспорт в файл .reg и в файл .hiv
reg export hkcu\test test.reg
reg save hkcu\test test.hiv
Затем создайте новую запись и новый подраздел
reg add hkcu\test /v new_entry /t REG_SZ /d "ayy lmao"
reg add hkcu\test\new_key
Если вы запустите reg query hkcu\test
вы увидите это
HKEY_CURRENT_USER\test
(Default) REG_SZ
entry REG_DWORD 0x1
new_entry REG_SZ ayy lmao
HKEY_CURRENT_USER\test\new_key
Импортируйте файл .reg, который мы создали ранее
reg import test.reg
Если вы запустите reg query hkcu\test
, вы увидите тот же вывод из # 5.
Импортируйте файл .hiv, который мы создали ранее
reg restore hkcu\test test.hiv
Если вы запустите reg query hkcu\test
, вы обнаружите, что новые элементы, которые мы создали в # 4, пропали, и мы получим тот же результат, что и # 2.