Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание установщика при помощи 7zSFX

Ответить
Настройки темы
CMD/BAT - Создание установщика при помощи 7zSFX

Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


Возникла задача ...
Для удобства создания установщиков на модулях 7z-SFX сделал фичу
При помощи которой создаю установщик когда в одной папке лежат 3 необходимых файлa
name.7z
name.txt
name.sfx
И когда кликнешь правой кнопкой в данной папке в пустом поле то открываем "Запустить 7zSFX Setup Maker"


В реестре добавлено:

Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Запустить 7zSFX Setup Maker]
"Icon"="C:\\Users\\UserName\\AppData\\Roaming\\Uniworker\\icons\\7z.ico"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Запустить 7zSFX Setup Maker\command]
@="C:\\Users\\UserName\\AppData\\Roaming\\Uniworker\\MakeSetup.exe"
MakeSetup.exe на самом деле маленький батник конвертированный в .exe такого содержания:
Код: Выделить весь код
@echo off
copy /b *.sfx + *.txt + *.7z Setup.exe
EXIT
После запуска с правого клика тут же создается новый Setup.exe
Так вот задача - что-бы создание установщика имело название не Setup.exe как прописано в батнике
а имя *.txt файла, то есть имело бы имя конфигурационного файла
Например у нас три файла в папке

MySetup.txt - это наш конфиг
MyArchive.7z - это наш архив с файлами
MyModule.sfx - это наш модуль sfx

Можно ли преобразовать батник "copy /b *.sfx + *.txt + *.7z Setup.exe"
чтобы вместо Setup.exe на выходе получалось бы имя существующего в папке *.txt файла ?
Например наш конфиг носит имя "StockFish.v15.1_avx2.txt"
и после запуска нашей фичи, на выходе мы имеем StockFish.v15.1_avx2.ехе

-------
We don't call 911


Отправлено: 19:51, 08-12-2022

 

Аватара для Vanadiy777

Ветеран


Сообщения: 2186
Благодарности: 876

Профиль | Отправить PM | Цитировать


minutka15,
так не пойдет?

Код: Выделить весь код
@echo off
for %%i in (*.txt) do set name=%%i
copy /b *.sfx + *.txt + *.7z %name%.exe
EXIT
Но, он полное название добавляет, вместе с "txt"...

Т.е. на выходе будет StockFish.v15.1_avx2.txt.exe

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:54, 08-12-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


Спасибо пойдет конечно!

-------
We don't call 911


Отправлено: 23:08, 08-12-2022 | #3


Аватара для Vanadiy777

Ветеран


Сообщения: 2186
Благодарности: 876

Профиль | Отправить PM | Цитировать


minutka15,
вот еще можно так попробовать, через костыли, конечно:

Код: Выделить весь код
@echo off
cd /d %~dp0
copy "*.txt" "*."
for %%i in (*.) do set name=%%i
copy /b "*.sfx" + "*.txt" + "*.7z" "%name%.exe"
del /q "*."
exit
Тогда на выходе файл с нормальным именем создается.

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:14, 09-12-2022 | #4


Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


Во, как раз что и нужно было
Пофиг - костыли-не костыли, главное работает!
Я годами пользовался через правый клик, но когда делаешь кучу всяких sfx, то одно и тоже имя на нервы действует.
А сейчас как часики.
Спасибо за труд!

-------
We don't call 911

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:49, 09-12-2022 | #5


Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


Мда, после конвертирования в exe файл на вызов из правой кнопки не работает.
Работает если только запустить из самой папки.

-------
We don't call 911


Отправлено: 16:01, 09-12-2022 | #6


Аватара для Vanadiy777

Ветеран


Сообщения: 2186
Благодарности: 876

Профиль | Отправить PM | Цитировать


Цитата minutka15:
Мда, после конвертирования в exe файл на вызов из правой кнопки не работает.
Работает если только запустить из самой папки. »
У меня, после конвертации в ехе даже в папке не работает.
У Вас старый сконвертированный скрипт нормально отрабатывал с любого места?
Просто, по сути ехе, сделанный из cmd, это простой sfx-архив, который распаковывается во временную папку.
Соответственно и пути он ищет там же...
А вот как это обойти - пока не знаю...

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Отправлено: 18:16, 09-12-2022 | #7


Аватара для minutka15

Пользователь


Сообщения: 141
Благодарности: 11

Профиль | Отправить PM | Цитировать


Vanadiy777
Мой старый скрипт из шапки работал все последние годы,
этот скрипт работает и в exe и в bat и через правый клик как описано в шапке.
Код: Выделить весь код
@echo off
for %%i in (*.txt) do set name=%%i
copy /b *.sfx + *.txt + *.7z %name%.exe
EXIT
последний работает в папке и как exe и как bat,но через правый клик не хочет.
По всей видимости кусочек кода ориентируется в папку темп либо в ту папку где он сам находится (куда его кинули для правого клика).
------

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

-------
We don't call 911


Последний раз редактировалось minutka15, 09-12-2022 в 19:28.


Отправлено: 19:13, 09-12-2022 | #8


Аватара для Vanadiy777

Ветеран


Сообщения: 2186
Благодарности: 876

Профиль | Отправить PM | Цитировать


minutka15,
чем в ехе конвертируете?
У меня ни один скрипт в ехе в папке не работает...
В cmd все ровненько, а в ехе - ни как...

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Отправлено: 00:33, 10-12-2022 | #9


Аватара для Vanadiy777

Ветеран


Сообщения: 2186
Благодарности: 876

Профиль | Отправить PM | Цитировать


Цитата minutka15:
этот скрипт работает и в exe и в bat и через правый клик как описано в шапке. »
minutka15,
если этот скрипт работает, то проверьте тогда этот:
Код: Выделить весь код
@echo off
copy *.txt *.
for %%i in (*.) do set name=%%i
copy /b *.sfx + *.txt + *.7z %name%.exe
del /q *.
exit

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:55, 10-12-2022 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Создание установщика при помощи 7zSFX

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Создание установщика БЕЗ запаковки файлов в архивы vk_k14m@vk Автоматическая установка приложений 0 13-04-2019 23:57
[решено] Создание компонентного установщика TranscendFree Автоматическая установка приложений 0 01-06-2011 14:40
2010 - Быстрое создание баз данных в Access 2010 при помощи макросов и шаблонов OSZone Microsoft Office (Word, Excel, Outlook и т.д.) 0 06-04-2010 00:30
Создание установщика для драйвера. voler Поиск драйверов, прошивок и руководств 2 12-07-2009 12:31
Delphi - Создание установщика Ламер Программирование и базы данных 17 22-07-2008 05:09




 
Переход