Windows: создание установочного exe-файла из SFX-архива

Автор: | 01/17/2014
 

windows_logoЗадача — создать единый exe-файл, который будет выполнять распаковку архива с файлами и каталогами, и запускать скрипт для установки.

Для этого используем утилиту 7-ZIP SFX Maker.

Сначала создаём 7z-архив, содержащий нужные каталоги.

В примере будут использоваться такие данные:

Directory of C:***AutoTest

17.01.2014  14:14    <DIR>          .
17.01.2014  14:14    <DIR>          ..
03.01.2014  10:41    <DIR>          BuildDir
17.01.2014  14:11    <DIR>          Checkout
17.01.2014  14:11    <DIR>          IEDriver
17.01.2014  14:14    <DIR>          Opt
17.01.2014  14:14    <DIR>          Scripts
0 File(s)              0 bytes
7 Dir(s)  294 487 949 312 bytes free
C:***AutoTest>dir Opt
Volume in drive C is OSDisk
Volume Serial Number is C04B-8B6F

Directory of C:***AutoTestOpt

17.01.2014  14:14    <DIR>          .
17.01.2014  14:14    <DIR>          ..
17.01.2014  14:12    <DIR>          apache-maven-2.2.1
17.01.2014  14:14    <DIR>          apache-tomcat-6.0.37_clear_install
17.01.2014  14:14    <DIR>          jdk1.6.0_32x64
17.01.2014  14:14    <DIR>          SSH
0 File(s)              0 bytes
6 Dir(s)  294 488 932 352 bytes free

Переходим в корень каталога, который будем упаковывать и создаём архив:

sfx_maker_1

Запускаем утилиту 7-ZIP SFX Maker.

Добавляем наш 7z-архив:

sfx_maker_2

Настройки:

sfx_maker_3

Ещё настройки:

sfx_maker_4

Теперь — самое интересное: выбираем тип операции, которые необходимо выполнить после распаковки архива, в данном случае — запустить скрипт:

sfx_maker_5

Указываем путь к файлу, тут — путь указывается от корня директории, в которую производилась установка, правой кнопкой мышки можно выбрать другие параметры:

sfx_maker_6

Создаём ехе-файлик:

sfx_maker_7

Прогресс создания:

sfx_maker_8

Проверяем:

Directory of C:***AutoTestInstall

17.01.2014  14:34    <DIR>          .
17.01.2014  14:34    <DIR>          ..
17.01.2014  14:14    <DIR>          AutoTest
17.01.2014  14:34       347 537 440 AutoTest.7z
17.01.2014  14:34       346 677 198 AutoTest.sfx.exe
2 File(s)    694 214 638 bytes
3 Dir(s)  293 693 485 056 bytes free

Не нашёл где менять тип расширения — поэтому просто переименуем файл, для красоты:

C:***AutoTestInstall>move AutoTest.sfx.exe AutoTest.exe
1 file(s) moved.
C:***AutoTestInstall>dir
Volume in drive C is OSDisk
Volume Serial Number is C04B-8B6F

Directory of C:***AutoTestInstall

17.01.2014  14:37    <DIR>          .
17.01.2014  14:37    <DIR>          ..
17.01.2014  14:14    <DIR>          AutoTest
17.01.2014  14:35       365 383 861 AutoTest.7z
17.01.2014  14:34       346 677 198 AutoTest.exe
2 File(s)    712 061 059 bytes
3 Dir(s)  293 690 081 280 bytes free

 

sfx_maker_9

Запускаем файл:

sfx_maker_10

Готово.