drem1lin
@drem1lin
чуть программист, чуть чуть админ...

Как изменить число в строке скрипта?

Привет, вопрос такой, есть скрипт InnoSetup, который в реестр добавляет номер экземпляра инсталлятора. Я хочу написать скрипт на питоне, который будет инсталляторы собирать с разными номерами. Вот не могу придумать как удобно менять этот номер, он расположен в строке и выглядит как ValueName: "InstallID"; ValueData: "8" и вот цифру 8 надо менять на другие. хотя бы по порядку. Как это лучше сделать? из явных вариантов - перебор и писать регулярку. Второго никогда не делал, первое не хорошо в душе отзывается
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
polarlord
@polarlord
Использовал такой способ, когда нужно было собирать много инсталляторов на 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}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
qlkvg
@qlkvg
python backend developer
Дубовое решение.
import re
string = 'ValueName: "InstallID"; ValueData: "8"'
number = "12"
print(re.sub('ValueData: "[0-9]*"', 'ValueData: "{}"'.format(number), string))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы