Как создать самораспаковывающийся архив в 7zip

Обновлено: 06.07.2024

Указывает модуль SFX, который будет объединен с архивом. Этот модуль должен находиться в той же директории, что и 7z.exe. Если не назначен, 7-Zip будет использовать стандартный консольный SFX-модуль 7zCon.sfx.

SFX-модули для установщиков

Оптимально небольшого размера установочного пакета можно добиться, если установочные файлы распаковать перед включением в архив 7z.

Переключатель -y для модуля установки указывает извлечение в тихом режиме.

Формат файла конфигурации установщика

Этот файл конфигурации содержит команды для установщика. Файл начинается со строки ;[email protected]@!UTF-8! и заканчивается ;[email protected]@!. Файл должен быть записан в кодировке UTF-8. Файл содержит любую или все эти пары строк:

SFX_Module Описание
7z.sfx Версия для Windows.
7zCon.sfx Консольная версия.
7zS.sfx Версия Windows для установщиков.
7zSD.sfx Версия Windows для установщиков (использует MSVCRT.dll).
ID_String Описание
Заголовок Заголовок для сообщения
BeginPrompt Сообщение о начале запроса
Прогресс Значение может быть «да» или «нет». Значение по умолчанию "да".
RunProgram Команда для выполнения. Значение по умолчанию — «setup.exe». Подстрока %%T будет заменена на путь к временной папке, куда были извлечены файлы
Каталог Префикс каталога для "RunProgram". Значение по умолчанию: ".\\"
ExecuteFile Имя файла для выполнения
ExecuteParameters Параметры для "ExecuteFile"

Вы можете опустить любую пару.

Есть два способа запустить программу установки: RunProgram и ExecuteFile. Используйте RunProgram, если хотите запустить программу из архива .7z. Используйте ExecuteFile, если вы хотите открыть документ из архива .7z или выполнить команду из Windows.

Если вы используете RunProgram и указываете пустой префикс каталога: Directory="", система ищет исполняемый файл в следующей последовательности:

  1. Каталог, из которого загружено приложение (установщик).
  2. Временная папка, в которую были извлечены файлы.
  3. Системный каталог Windows.

Примеры файла конфигурации

Примеры

добавляет файлы *.txt в самораспаковывающийся архив a.exe, используя SFX-модуль консоли по умолчанию.

добавляет все файлы в самораспаковывающийся архив a.exe с модулем 7z.sfx, используя версию модуля SFX для Windows.

Вывод: в этой статье описывается, как преобразовать архивы 7-Zip (.7z) в самораспаковывающиеся архивы (.exe) из проводника Windows.

Самораспаковывающийся архив 7-Zip (SFX) представляет собой отдельный программный файл (файл Windows .exe), который может распаковать архив 7z (хранящийся внутри него) без использования 7-Zip или каких-либо других инструментов. На самом деле это файл .7z, связанный с небольшой программой (служебной), которая извлекает файлы непосредственно из объединенного файла .7z в папку, указанную пользователем.

Требования

Прежде чем начать, вам необходимо иметь два следующих инструмента:

    – Бесплатная (или зарегистрированная) версия. Paquet Builder может преобразовывать архивы 7-Zip в простые или расширенные самораспаковывающиеся архивы в формате .exe. Он также может сам создавать файлы .7z.
    (бесплатное дополнение): позволяет получить доступ к функциям Paquet Builder непосредственно из проводника Windows (благодаря контекстному меню).

Превратите существующий архив 7-Zip в самораспаковывающийся с помощью проводника Windows

<р>1. Откройте проводник Windows и найдите архив 7-Zip, который вы хотите преобразовать. Для этой статьи мы преобразуем «demo.7z».

Выберите архив 7-Zip

Обратите внимание, что это меню появится, только если установлено расширение оболочки.

<р>4. Появится следующее диалоговое окно:


При желании вы можете изменить предустановленные настройки. В противном случае нажмите «Создать», чтобы продолжить.

<р>6. Paquet Builder автоматически откроется, и через несколько секунд после этого будет создан ваш самораспаковывающийся архив, если все было в порядке:


<р>7. Если вы запустите файл .exe, вы (и все, кому вы отправляете .exe) увидите этот результат:


и при нажатии кнопки Далее:


Вы выбираете путь, куда вы хотите извлечь файлы, и нажимаете «Далее». 7-Zip вообще не требуется.

Вы можете изменить заголовок «Paquet Archive», используя поле «Заголовок окна».

«Описание» позволяет изменить текст, отображаемый на этапе приветствия мастера.

Вы даже можете изменить растровое изображение заставки, URL-адрес домашней страницы и текст диалогового окна приветствия в Paquet Builder.

Настройка самораспаковывающегося архива

Paquet Builder может создавать индивидуальные самораспаковывающиеся архивы: вы можете мгновенно настроить свои SFX-архивы от А до Я.

Если вы хотите создавать более сложные самораспаковывающиеся архивы, вы можете использовать Paquet Builder:

  • включите «Открыть Paquet Builder, чтобы изменить пакет», и Paquet Builder будет открыт, когда вы нажмете «Создать». Ваш самораспаковывающийся архив не будет создан, пока вы не скомпилируете его в Paquet Builder.
  • или вы можете включить «Создавать файл проекта Paquet Builder при компиляции». В этом случае создается самораспаковывающийся архив, а также выводится файл проекта (расширение .pbpx). Затем дважды щелкните этот файл .pbpx, чтобы открыть Paquet Builder.

С помощью Paquet Builder вы можете добавить множество дополнительных функций в свой самораспаковывающийся архив:

Я пытаюсь получить SFX-архив 7zip для создания исполняемого файла. Я могу получить исполняемый файл. Но когда я запускаю его, он дает путь загрузки для извлечения: . Я хотел бы изменить на %AppData%\Roaming по умолчанию. Скриншот ниже даст представление о том, что я пытаюсь сделать.

Настройки 7zip

Извлечь в: диалоговое окно

В архиве нет файла setup.exe или чего-то еще, в нем всего несколько файлов, которые нужно поместить в папку Roaming. Это для многих наших пользователей, которые могут получать эти обновления без указания пути. (Всегда проще, когда пользователям не нужно указывать путь, иначе, по моему опыту, пользователи могут выбирать самые необычные пути!!)

Обновить

Вот что я пробовал до сих пор. содержимое моего файла конфигурации

Это вызов командной строки.

К сожалению, это не работает. Он дает следующий путь. Это должно быть %AppData%\\Roaming\\Notepad++ .

![Извлечь путь]

4 ответа 4

Попробуйте 7z SFX Builder, это бесплатно, поддерживает параметры командной строки, а также вы можете указать путь извлечения на Главной вкладке GUI:

Главная вкладка

Я хочу изменить путь извлечения на %AppData%\Roaming по умолчанию.

Вам необходимо загрузить "модифицированный модуль" из 7z SFX Builder (sourceforge).

В вашем файле конфигурации:

Параметры файла конфигурации

InstallPath="path_to_extract"

Задает путь извлечения. Папка извлечения не будет удалена после извлечения.

Если значение InstallPath отсутствует в файле конфигурации или путь был удален из интерактивного диалога извлечения, архив будет извлечен во временную папку. Эта временная папка будет удалена после извлечения и выполнения всех команд.

Разрешены переменные среды (за исключением %%T и переменных, определенных в SetEnvironment , если %%T используется в любой из них ). Вы ДОЛЖНЫ использовать ДВОЙНУЮ обратную косую черту в путях. Например:

или

Относительные пути разрешены. Текущая папка — та, из которой была запущена программа, запускающая SFX-архив. Например,

создает папку с именем "test" в папке, из которой выполнялась программа, запускающая SFX-архив. Все файлы будут извлечены в папку «test». С другой стороны,

извлекает содержимое архива в папку, из которой была запущена программа, запускающая SFX-архив. Кроме того,

извлекает содержимое архива в папку, где находится звуковой эффект.

Если все, что вам нужно, это извлечь содержимое архива в определенную папку, вам нужно указать значение для InstallPath в файле конфигурации.

В этом случае вы не должны указывать RunProgram или ExecuteFile в файле конфигурации. AutoInstall или AutoInstallX можно указать в файле конфигурации, но их нельзя вызывать из командной строки или с помощью клавиши [SHIFT].

Если вы укажете RunProgram или ExecuteFile или вызовете AutoInstall и AutoInstallX, указанный исполняемый файл будет запущен после извлечения.

Из этого вопроса

Кажется, мне также нужен файл .sfx, поэтому я скопировал из другого вопроса и создал его со следующим содержимым

и вызывается setup.sfx и добавляется в архив вместе с другими файлами

но это не имело значения, что еще мне нужно сделать.

Дополнительный вопрос: у меня также есть WinRar. Влияет ли это на работу конечного пользователя при использовании 7Zip или Winrar?

3 ответа 3

Я создал пошаговые инструкции о том, как это сделать, поскольку я также был очень озадачен тем, как заставить это работать.

Вот шаги.

Шаг 1. Настройте папку для установки

Для упрощения создайте папку c:\Install. Сюда мы скопируем все необходимые файлы.

Шаг 2. 7Заархивируйте установщики

  1. Перейдите в папку с файлами .msi и setup.exe.
  2. Выберите файлы .msi и setup.exe.
  3. Нажмите правой кнопкой мыши и выберите 7Zip --> "Добавить в архив"
  4. Назовите свой архив "Installer.7z" (или имя по вашему выбору)
  5. Нажмите "ОК".
  6. Теперь у вас должен быть "Installer.7z".
  7. Скопируйте этот файл .7z в каталог c:\Install

Шаг 3. Получите модуль расширения 7z-Extra sfx

Вам необходимо скачать 7zSD.sfx

  1. Загрузите один из пакетов LZMA отсюда
  2. Извлеките пакет и найдите 7zSD.sfx в папке bin.
  3. Скопируйте файл "7zSD.sfx" в папку c:\Install

Шаг 4. Настройте файл config.txt

Я бы рекомендовал использовать NotePad++ для редактирования этого текстового файла, так как вам нужно будет кодировать в UTF-8, следующие инструкции используют notepad++.

  1. Используя проводник Windows, перейдите в папку c:\Install
  2. щелкните правой кнопкой мыши и выберите "Новый текстовый файл" и назовите его config.txt
  3. щелкните правой кнопкой мыши и выберите "Редактировать в NotePad++".
  4. Нажмите "Меню кодировки" и выберите "Кодировать в UTF-8"

Введите что-то вроде этого:

Редактируйте это, заменив [ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ v1.0.0.0] названием вашего продукта. Примечания о параметрах и опциях установочного файла находятся здесь.

Контрольная точка

Теперь у вас должна быть папка "c:\Install" со следующими тремя файлами:

  1. Установщик.7z
  2. 7zSD.sfx
  3. config.txt

Шаг 5. Создайте архив

Эти инструкции я нашел в Интернете, но нигде они не объясняли ни один из 4 шагов, описанных выше.

В командном окне введите следующее

Запустите программу установки

Дважды щелкните файл MyInstaller.exe, и он отобразит ваше сообщение. Нажмите OK, и setup.exe запустится.

P.S. Примечание об автоматизации

Теперь, когда это работает в вашем каталоге c:\Install, я бы создал файл "Install.bat" и поместил в него сценарий копирования.

Теперь вы можете просто редактировать и запускать файл Install.bat каждый раз, когда вам нужно собрать новую версию пакета развертывания.

Спасибо за отличный ответ. Я пытаюсь использовать эту технику для объединения приложения node webkit. Я столкнулся с проблемой: после извлечения и успешного запуска приложения через несколько минут после закрытия приложения появляется окно помощника по совместимости программ, в котором говорится: «Возможно, программа установлена ​​неправильно». Программа: 7z Setup SFX. Издательство: Игорь Павлов. Я предполагаю, что это потому, что я запускаю не настоящий установщик Windows, а другой исполнитель. Можете ли вы придумать способ решить эту проблему?

Причина, по которой звуковые эффекты не включены в выпуск 16.x, заключается в том, что он использует флаг -sfx (или флажок при использовании графического интерфейса) при сжатии!

Кому ilaif: при наличии установщика Windows с именем "install.exe", "setup.exe" или "update.exe" и вы не записываете в реестр, то винда выдает "Возможно программа установлена ​​неправильно". Решение: переименуйте установщик и избегайте слов install/setup/update. Например. переименуйте установщик в inst.exe и все работает нормально. Я тестировал это на Windows 7.

@Woody, ответ пришел через 6 месяцев после моего собственного ответа, и к тому времени я остановился на WinRar, но, насколько мне известно, интерфейс, предоставляемый конечному пользователю установщиком 7zip при установке, был уродливее, чем версия WInRar

Хорошо, у меня все работает, надеюсь, эта информация окажется полезной.

Во-первых, теперь я понимаю, что самораспаковывающиеся zip-файлы не только начинают извлекаться двойным щелчком мыши, но и не требуют установки приложения для извлечения на компьютер пользователя, поскольку код извлечения находится в самом архиве. Это означает, что вы получите различный пользовательский интерфейс в зависимости от того, какое приложение вы используете для создания sfx

Я использовал WinRar следующим образом, для этого не требуется создавать файл sfx, все можно создать через графический интерфейс:

  • Выберите файлы, щелкните правой кнопкой мыши и выберите "Добавить в архив".
  • Используйте Обзор.., чтобы создать архив в указанной выше папке.
  • Изменить формат архива на Zip
  • Включить создание архива SFX
  • Выберите вкладку "Дополнительно".
  • Выберите параметры SFX
  • Выберите вкладку "Настройка".
  • Введите файл setup.exe в поле «Выполнить после извлечения».
  • Выбрать вкладку "Режимы"
  • Включить распаковку во временную папку
  • Выберите вкладку «Текст и значок».
  • Введите более подходящее название для вашей задачи
  • Нажмите "ОК".
  • Нажмите "ОК".

Полученный exe-файл распаковывается во временную папку, а затем запускает программу установки

 Исполняемый файл SFX-архива

Самораспаковывающийся файл — это один из сжатых файлов. Для извлечения архива не требуется никакого другого программного обеспечения для сжатия, просто дважды щелкните исполняемый файл архива SFX, и он будет извлечен автоматически. В большинстве случаев мы, вероятно, не сжимаем файлы или папки в этом формате. Но, несомненно, это удобно для людей, независимо от того, есть у них программа для сжатия или нет.

Вариант 1. Создайте файл архива WinRAR SFX

Шаг 1. Запустите WinRAR и выберите файлы или папки, которые вы хотите использовать для создания самораспаковывающихся файлов RAR или ZIP.

Шаг 2. Нажмите кнопку "Добавить" и откройте диалоговое окно "Имя и параметры архива".

выберите файлы для создания sfx в winrar

Шаг 3. Теперь вы можете выбрать Формат архива и установить на вкладке Общие параметр Создать архив SFX.

выберите опцию создания архива sfx в winrar

Шаг 4. Перейдите на вкладку "Дополнительно" и нажмите кнопку "Параметры звуковых эффектов".

 выберите параметры SFX в winrar

Шаг 5. В новом диалоговом окне «Дополнительные параметры SFX» перейдите на вкладку «Общие» и укажите путь для извлечения.

установить путь для извлечения SFX

Введите строку «%USERPROFILE%\Desktop» в поле «Путь для извлечения», что приведет к автоматическому выбору верного варианта «Абсолютный путь».

Кроме того, вы можете выбрать вариант "Создать в Program Files" или "Создать в текущей папке".

Шаг 6. Выберите вкладку «Режимы» в дополнительных параметрах SFX и установите флажок «Показать все», «Скрыть начальное диалоговое окно» или «Скрыть все» в разделе «Тихий режим».

 выберите режим распаковки SFX

По умолчанию выбран вариант «Показать все». Однако, если вы хотите создать SFX-архив, извлекающий все файлы и папки непосредственно в указанное место, например «%USERPROFILE%\Desktop», без отображения окна, теперь вам нужно выбрать «Скрыть все».

Шаг 7. Вкладка "Модуль" и выберите модуль SFX Default.SFX.

выбрать SFX модуль

Шаг 8. Нажмите кнопку "ОК", чтобы закрыть окно дополнительных параметров SFX.

Шаг 9. Перейдите на вкладку "Общие" в поле "Имя и параметры архива" и "Имя архива".

 имя архива SFX в winrar

Шаг 10. Начните сжимать файлы или папки в SFX-архив, нажав кнопку OK.

создать SFX-архив exe winrar

Вариант 2: 7-Zip создать SFX-архив

Шаг 1. Откройте 7-Zip. Найдите компьютер и перейдите к файлам или папкам, для которых вы хотите создать архив 7z SFX. Выберите их и нажмите кнопку «Добавить».

выберите файлы для создания SFX-архива в 7Zip

Шаг 2. В окне "Добавить в архив" задайте различные параметры создания архива SFX.

установить параметры для создания SFX-архива в 7Zip

2-1 Установите флажок «Создать архив SFX» в разделе «Параметры».

2-2 Назовите архив SFX и выберите место для сохранения архива SFX.

2-3 Если вы хотите зашифровать SFX-архив, выберите метод шифрования и установите пароль.

2-4 В режиме обновления параметром по умолчанию является «Добавить и заменить файлы». Кроме того, вы можете выбрать «Обновить и добавить файлы» или другие параметры в раскрывающемся списке.

Шаг 3. Нажмите «ОК», чтобы начать сжатие файлов или папок. Вы увидите исполняемый файл в том месте, где вы выбрали сохранение SFX-архива.

Читайте также: