Войти

Показать полную графическую версию : Как отредактировать setup.iss при помощи батника


minutka15
09-10-2022, 07:13
Ребята нуждаюсь в вашей помощи.
Создал файл ответов setup.exe /r и получил setup.iss из установщика созданного с "installshield wizard".
Полученный результат в setup.iss устраивает за исключением буквы диска и имя компьютера.

вот кусочек кода:
[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
szDir=C:\Program Files (x86)\PROGA\PROGA
szDir=C:\Users\USERNAME\Documents\PROGA

Системные переменные в файле setup.iss не работают и с учетом того, что на другом компьютере возможно
будет другая буква диска и неизвестное имя владельца то установщик забуксует.
Нужен батник который определит букву системного диска и имя владельца компьютера и заменит это в нужных строках.
К примеру для облегчения работы я заменю в setup.iss эту строчку
szDir=C:\Program Files (x86)\PROGA\PROGA
на ХХХ
А эту
szDir=C:\Users\USERNAME\Documents\PROGA
на WWW
Файлы установки распакуются в "%TEMP%\Proga" и затем батник должен отредактировать setup.iss
вышеупомянутой задачей после чего батник запустит setup.exe /s /sms

И вот что мне нужно:
В setup.iss ищем слово ХХХ и заменяем на буква диска:\Program Files (x86)\PROGA\PROGA
Слово WWW заменяем на буква диска:\Users\имя владельца\Documents\PROGA
Если кто-нибудь мне помог-бы с батником то был бы очень благодарен.
Если кто знает другой метод установки при помощи файла ответов то буду рад услышать.

DJ Mogarych
09-10-2022, 08:32
Нужно просто использовать в файле константы вместо путей.
https://jrsoftware.org/ishelp/index.php?topic=consts
Перепутал с Inno Setup.

У любого инсталлятора есть переменные, см.
https://stackoverflow.com/questions/6912608/installshield-relative-file-paths
https://shieldmaster.wordpress.com/2007/06/21/path-variables-and-project-organization/
https://www.google.com/search?q=installshield+silent+path+variables

minutka15
09-10-2022, 12:34
У любого инсталлятора есть переменные »
Файл ответов setup.iss не понимает такие переменные.

DJ Mogarych
09-10-2022, 18:58
Это плохо.

Как вариант - попробовать параметрами к setup.exe, либо извратиться как-то так:

set iss="C:\temp\setup.iss"

echo [InstallShield Silent] > %iss%
echo Version=v7.00 >> %iss%
echo File=Response File >> %iss%
echo [File Transfer] >> %iss%
echo OverwrittenReadOnly=NoToAll >> %iss%
echo szDir=%programfiles(x86)%\PROGA\PROGA >> %iss%
echo szDir=%userprofile%\Documents\PROGA >> %iss%

minutka15
10-10-2022, 17:07
set iss="C:\temp\setup.iss"
echo [InstallShield Silent] > %iss%
echo Version=v7.00 >> %iss%
echo File=Response File >> %iss%
echo [File Transfer] >> %iss%
echo OverwrittenReadOnly=NoToAll >> %iss%
echo szDir=%programfiles(x86)%\PROGA\PROGA >> %iss%
echo szDir=%userprofile%\Documents\PROGA >> %iss% »

Такой метод не подходит, он не меняет то, что нужно а просто заполняет что прописано в батнике.

Файл ответов в setup.iss состоит более 80 строк. Нужен метод поиска и замены:
Все что нужно это заменить в файле setup.iss 2 строчки
В setup.iss ищем слово ХХХ и заменяем -> %systemdrive%:\Program Files (x86)\PROGA\PROGA
Если система установлена на диск "D" чтобы был результат был -> D:\Program Files (x86)\PROGA\PROGA
Слово WWW заменяем на %systemdrive%\Users\%USERNAME%\Documents\PROGA
чтобы был результат был -> D:\Users\SuperPuperUser\Documents\PROGA




© OSzone.net 2001-2012