Если в архиве нет иных папок, кроме исходных для слияния, то вообще не вижу большого смысла в такой постановке задачи - при больших архивах время на разархивацию много больше, чем время на перемещение посредством move распакованного в общую папку на том же диске. Если есть иные папки, то и sfx-архив можно распаковать и 7zG.exe, конечно, тогда и смысл иметь sfx-архив теряется. Кстати, не сумел подавить запрос на определение целевой папки для разархивации при запуске екзешника sfx-архива
Есть распакованные инсталляторы программы, 32 и 64 битные версии, для каждой свой. Лежат соотв. в папках x86 и x64. Размер каждой примерно 500Мб. С помощью sfx делается установка программы, определяется битность и после распаковки запускается инсталлятор либо из x64 либо из x86. Это все стандартно. Размер sfx инсталлятора составил 330Мб. Но еще задумка уменьшить размер sfx инсталлятора. Для это понаходил все одинаковые по содержимому, размеру и названию файлы, которые есть у обоих папках инсталлятора x86 и x64. И вынес их в отдельную папку Common. Получилось где то на 500Мб. Таким образом удалось уменьшить вес на 500Мб, так как удалил по 500Мб из x86 и x64 и создал одну папку Common на 500Мб. Таким образом в конечном sfx инсталляторе после создания получается где то 270Мб. Выигрыш в 60Мб и меньшее количество файлов в архиве, что положительно сказывается и на скорости распаковки. Теперь застопорился на том, как после запуска и распаковки инсталлятора в темповую папку обьединить папки скажем x86 и Common, потому как для запуска инсталлятора в папке ч86 ему надо дозаписать те 500Мб, которые перенес в папку Common.
Для создания инсталляторов пользуюсь InnoSetup, там это без проблем, что куда распаковать, но он не умеет так ужимать, мало параметров.
Думал что сам 7zip умеет определять одинаковые файлы и сжимать раз и записывать местоположение для распаковки. По разному игрался. Особо эффекта не дало, решил попробовать вот таким методом.