Привет, вопрос такой, есть скрипт InnoSetup, который в реестр добавляет номер экземпляра инсталлятора. Я хочу написать скрипт на питоне, который будет инсталляторы собирать с разными номерами. Вот не могу придумать как удобно менять этот номер, он расположен в строке и выглядит как ValueName: "InstallID"; ValueData: "8" и вот цифру 8 надо менять на другие. хотя бы по порядку. Как это лучше сделать? из явных вариантов - перебор и писать регулярку. Второго никогда не делал, первое не хорошо в душе отзывается
вы можете написать шаблон, где вместо 8 будет какая-нибудь комбинация типа %eight%, и потом простым replace выполнять замену этой конструкции на то что вам нужно.
Использовал такой способ, когда нужно было собирать много инсталляторов на InnoSetup с разными параметрами, которые должны были меняться в самом скрипте .iss.
При создании инсталлятора (вызов ISCC.exe) можно передавать пользовательские параметры, которые можно использовать внутри скрипта. Все такие параметры передаются в виде /dMY_PARAM = param_value. Т.е. /d - это обязательная стандартная часть, потом должно идти имя которое вы зададите. В самом скрипте к таким параметрам можно обращаться так {#MY_PARAM}. Без d.
Например, полная строка команды на сборку скрипта может выглядеть так:
ISCC.exe /dMY_PARAM_1 = 123.44 /dMY_PARAM_2 = "hello" myscript.iss
Внутри myscript.iss значения этих параметров можно использовать так:
{#MY_PARAM_1} и {#MY_PARAM_2}