Как сделать самораспаковывающийся архив bat
Сегодня рассмотрим как сделать самораспаковывающийся архив или SFX archive (аббревиатура английского self-extracting archive) — сжатый файл, состоящий из одного или нескольких документов плюс программный код для их извлечения.
Можно представить что это некий контейнер для хранения, переноски, передачи нужной информации в сжатом виде. Причем если для обычных архивов требуется наличие установленного архиватора для распаковки его содержимого. То здесь таких требований нет. Вынуть из него содержимое несложно при условии использования того же типа операционной системы. Если он создан для Windows, с большой долей вероятности он успешно распакуется на той же платформе с любой версией. Успех будет менее очевидным при попытке извлечения данных в других системах.
Часто подобный метод хранения информации используется для передачи данных в сети интернет. Благодаря ему отправителю можно не переживать о наличии предустановленного приложения для сжатия или какого либо дополнительного ПО у получателя. Сегодня обсудим самые актуальные на текущий момент программы для создания самораспаковывающихся архивов.
Создание SFX-Archive в 7zip
Описание процесса по шагам
Наиболее популярный выбор пользователей, который можно установить бесплатно — 7zip. Поэтому именно на его примере первым разберем процесс создания самораспаковывающегося архива.
Чтобы заархивировать нужную информацию и создать самораспаковывающийся архив используя программу 7zip необходимо:
Если вы правильно выполнили описанные выше шаги, то откроется стандартное окно 7z вида:
Следует отметить что отображение опции станет активным только после выбора формат 7zip. Прочие форматы не поддерживают возможность создать самораспаковывающийся архив.
Перед сжатием можно модифицировать остальные параметры процедуры. К примеру, установить степень сжатия, метод, подключить опцию включения шифрования или разделения на тома. Настройка опций не обязательна. Для быстрого создания достаточно будет остановиться на шаге описанном в предыдущем параграфе.
По окончании в директории с исходными файлами будет создан EXE.
Распаковка
Внимание! Некоторые антивирусы могут воспринимать самораспаковывающиеся архивы как вирусы, несмотря на то, что они таковыми не являются.
Например, приложение Защитник Win 10 не только считает, что во всех архивах вирусы, но и автоматически удаляет подобные экзешники без предупреждения.
Пользователь, который уверен в отсутствии вредоносного кода, для решения проблемы может отключить Защитник Windows 10 на время распаковки.
Создание SFX-Archive в WinRAR
Пошаговая инструкция
По завершению процесса компрессии появится EXE-файл с указанным вами названием.
Извлечение
При запуске полученного архива отобразится экран извлечения, аналогично тому, как на скриншоте ниже.
Создание SFX-Archive в WinZIP
Руководство, как сжать файлы
Менее популярная, по сравнению с перечисленными выше, утилита WinZip.
Следующим шагом приложение рекомендует задать имя ZIP-файла и сохранить. Выполняем предложенные действия и продолжаем.
Выгрузка сжатых файлов
Прочие архиваторы
Кроме вышеописанных программ существуют и другие, редко используемые сейчас архиваторы для создания SFX архивов. К ним относятся такие как ARJ, PKZIP, p7zip, zipSfx, SFX Creator, CAB.
Напишите в комментарии: а какой утилитой пользуетесь вы?
Из этого вопроса
кажется, мне также нужен файл .sfx, поэтому я скопировал из другого вопроса и создал один со следующим содержанием
и вызвал setup.sfx и добавил это в архив вместе с другими файлами
но это не имело значения, что еще мне нужно сделать.
Дополнительный вопрос, у меня также есть WinRar, влияет ли это на работу конечного пользователя, использую ли я 7Zip или Winrar?
ОТВЕТЫ
Ответ 1
Хорошо, у меня есть работа, надеюсь, что эта информация полезна.
Прежде всего, теперь я понимаю, что не только самораспаковывающийся zip-запуск извлечения с помощью doubleclick, но и не требует, чтобы приложение-экстрактор не устанавливалось на компьютер пользователя, потому что код экстрактора находится в самом архиве. Это означает, что вы получите другой пользовательский интерфейс в зависимости от того, какое приложение вы используете для создания sfx
Я пошел с WinRar следующим образом, это не требует создания файла sfx, все может быть создано через gui:
- Выберите файлы, щелкните правой кнопкой мыши и выберите Добавить в архив
- Использовать Обзор.. для создания архива в папке выше
- Изменить формат архива на печать
- Включить создание SFX-архива
- Выберите вкладку "Дополнительно"
- Выберите опции SFX
- Выберите вкладку "Настройка"
- Введите setup.exe в поле Запустить после извлечения
- Выберите вкладку "Режимы"
- Включить Распаковать во временную папку
- Выберите вкладку "Текст" и "Значок"
- Введите более подходящее название для своей задачи.
- Выберите ОК
- Выберите ОК
В результате exe распакуется во временную папку и затем запускает программу установки
Ответ 2
Я создал пошаговые инструкции о том, как это сделать, поскольку я также был очень смущен тем, как заставить это работать.
Шаг 1 - Настройте папку установки
Для этого создайте папку c:\Install. Здесь мы скопируем все необходимые файлы.
Шаг 2 - 7Зип ваши установщики
- Перейдите в папку, в которой находятся MSI файл и файл setup.exe.
- Выберите .msi и setup.exe
- Щелкните правой кнопкой мыши и выберите 7Zip → "Добавить в архив"
- Назовите свой архив "Installer.7z" (или имя по вашему выбору)
- Нажмите Ok
- Теперь у вас должен быть "Installer.7z".
- Скопируйте этот файл .7z в ваш каталог c:\Install
Шаг 3 - Получить модуль расширения 7z-Extra sfx
Вам нужно скачать 7zSD.sfx
- Загрузите один из пакетов LZMA отсюда
- Распакуйте пакет и найдите 7zSD.sfx в папке bin .
- Скопируйте файл "7zSD.sfx" в c:\Install
Шаг 4 - Настройте ваш config.txt
Я бы порекомендовал использовать NotePad++ для редактирования этого текстового файла, так как вам нужно будет кодировать в UTF-8, следующие инструкции используют NotePad++.
- С помощью проводника Windows перейдите в c:\Install
- щелкните правой кнопкой мыши и выберите "Новый текстовый файл" и назовите его config.txt
- щелкните правой кнопкой мыши и выберите "Изменить с помощью NotePad++
- Нажмите "Меню кодирования" и выберите "Кодировать в UTF-8"
Введите что-то вроде этого:
Отредактируйте это, заменив [ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ v1.0.0.0] названием вашего продукта. Замечания о параметрах и опциях для установочного файла находятся здесь
Контрольно-пропускной пункт
Теперь у вас должна быть папка "c:\Install" со следующими 3 файлами:
- Installer.7z
- 7zSD.sfx
- config.txt
Шаг 5 - Создать архив
Эти инструкции я нашел в Интернете, но нигде не объяснил ни один из 4 шагов выше.
В командной строке введите следующее
Загляните в c:\Install, и вы увидите, что у вас есть MyInstaller.exe
Запустите установщик
PS Примечание по автоматизации
Теперь, когда вы работаете с этим в вашем каталоге c:\Install, я бы создал файл "Install.bat" и поместил в него скрипт копирования.
Теперь вы можете просто редактировать и запускать Install.bat каждый раз, когда вам нужно пересобрать новую версию вашего пакета развертывания.
Ответ 3
Это просто с открытым исходным кодом 7zip SFX-Packager - простой способ просто "перетащить" папки на него, и он создает портативный/самораспаковывающийся пакет.
Поэтому мне нужно получить SFX для извлечения в местоположение и затем автоматически запустить файл bat из папки, в которую он только что был извлечен.
Надеюсь, кто-то может помочь.
В запуске WinRAR выберите файлы или папки, чтобы вставить их в архив и нажмите кнопку " Добавить". Установите флажок Создать SFX-архив.
Перейдите на вкладку Дополнительно и нажмите кнопку " Параметры SFX". Перейдите на вкладку " Настройка" и введите в поле ниже "Запустить после извлечения" имя командного файла с относительным путем, если пакетный файл не находится в корневом каталоге архива.
Переключиться на вкладку Комментарий после завершения настройки всех параметров SFX и нажатия кнопки OK. Вы можете видеть там что-то вроде
Вы можете сохранить все параметры, заданные для создания архива SFX, в профиль, чтобы упростить запуск WinRAR из пакетного файла с использованием профиля или быстрого выбора профиля из GUI.
Разумеется, также можно определить все настройки непосредственно в командной строке, не используя профиль WinRAR, который хранится в реестре Windows для текущего пользователя.
Руководство для консольной версии Rar.exe - это текстовый файл Rar.txt в папке программных файлов WinRAR.
Команды и опции, доступные для WinRAR.exe , документируются с помощью WinRAR. На вкладке Содержание есть режим командной строки, в котором перечислены все справочные страницы, полезные для построения командной строки. Для переключателей начинается с списка Алфавитных переключателей.
Редактировать:
Если Install.bat добавляется в архив в подпапке, необходимо указать командный файл с subfolder\Install.bat в диалоговом окне установки SFX, соответственно, файла комментария.
И внутри командного файла должна быть добавлена командная строка cd "%~dp0" чтобы изменить текущий каталог из целевого каталога извлечения, установленного модулем SFX, в извлеченную вложенную папку, содержащую командный файл.
Кстати: командный процессор Windows не разрешает выполнение командного файла с использованием UNC-пути. Таким образом, невозможно запустить включенный пакетный файл, когда пользователь выбирает извлечение архива для общего ресурса в сети с использованием UNC-пути.
и другие темы, перечисленные на этой странице, на правой стороне ниже по теме.
set rar_path="C:\Program Files\WinRAR\rar.exe"
set backup_path=F:\Backup\
set archive_name=backup-file_all -ag_DD.MM.YYYY
%rar_path% a -r -m2 -dh -ow -ppassword %backup_path%%archive_name% F:\files\*.*
Можно задать список файлов/категорий для архивирования текстовым файлом. Bat-файл примет такой вид:
set rar_path="C:\Program Files\WinRAR\rar.exe"
set backup_path=F:\Backup\
set archive_name=backup-file_all -ag_DD.MM.YYYY
set backup_list=@C:\backup\backuplist.txt
%rar_path% a -r -m2 -dh -ow -ppassword %backup_path%%backup_list%%archive_name%
-s Создать непрерывные группы, используя счётчик файлов
-sc[объекты] Указать набор символов (и объекты)
-se Создать непрерывные группы, используя расширения файлов
-sfx[имя] Создать самораспаковывающийся архив
-sl Обрабатывать файлы размером меньше указанного
-sm Обрабатывать файлы размером больше указанного
-sv Создать независимые непрерывные тома
-sv- Создать зависимые непрерывные тома
-s- Запретить создание непрерывных архивов
-t Протестировать файлы после архивирования
-ta Обрабатывать файлы, изменённые после указанной даты
-tb Обрабатывать файлы, изменённые до указанной даты
-tk Сохранять исходное время архива
-tl Установить время архива по самому новому файлу
-tn Обрабатывать файлы не старее, чем указанный период времени
-to Обрабатывать файлы более старые, чем указанный период времени
-ts Сохранить/восстановить время файлов (модификации, создания, последнего доступа)
-u Обновить файлы
-v[k |b|f|m|M|g|G] Создать многотомный архив
-vd Очищать сменный диск перед архивацией на него
-ver[n] Управление версиями файлов
-vn Использовать старую схему именования томов
-vp Делать паузу перед каждым томом
-x Не обрабатывать указанный файл
-x@ Не обрабатывать файлы, указанные в файле-списке
-y Подразумевать ответ "Да" на все запросы
-z Прочитать комментарий архива из файла
-- Прервать дальнейший поиск ключей в командной строке
Запись опубликована автором MishLen в рубрике Разное (Windows) с метками backup, bat, windows, winrar. Добавьте в закладки постоянную ссылку.
Читайте также: