StranikS_Scan Posted August 16 Share Posted August 16 1 час назад, DraugDM сказал: они же рядом с папкой патча лежат! Значит с ними ничего делать не надо (С) Твой кэп @ Quote Link to comment Short link Share on other sites More sharing options...
Qirashi Posted August 16 Share Posted August 16 2 часа назад, DraugDM сказал: ну сейчас у меня каждый мод отдельный в папке по полному пути лежит - mods\1.28.0.0 - и сам мод! в иносетап добавил \mods\{#Patch}\ чтобы в каждой папке с модом не переписывать(не менять) названия патча при каждом обновлении игры... а вот с конфигами которые лежат рядом с папкой не знаю как быть... Куда проще написать внешний скрипт парсер который будет переименовывать папки с версией. Или писать кастомные функции для inno setup. Мне проще, у меня все моды в архивах и кастомные функции распаковки. Т.е так как привязка к чекбоксам, я могу несколько архивов поочерёдно распаковать в 1 папку. Насколько я знаю без костылей напрямую inno setup не даст это сделать. И у тебя выбор, либо переписывать скрипт, либо делать внешнюю утилиту на батнике. Я бы советовал питон. Что-то такое: import os """ Скрипт парсит все папки которые рядом с скриптом. Входит в каждую и ищет в ней old_version Если есть совпадение, то заменяет old_version на new_version """ # Какую версию на какую заменить old_version = "1.28.0.0" new_version = "1.29.0.0" def rename_directories(base_dir): for entry in os.listdir(base_dir): entry_path = os.path.join(base_dir, entry) if os.path.isdir(entry_path): for sub_entry in os.listdir(entry_path): sub_entry_path = os.path.join(entry_path, sub_entry) if os.path.isdir(sub_entry_path) and old_version in sub_entry: new_name = sub_entry.replace(old_version, new_version) new_path = os.path.join(entry_path, new_name) os.rename(sub_entry_path, new_path) print(f"Папка переименована: {sub_entry_path} -> {new_path}") # Путь до директории где лежит скрипт. base_directory = os.path.dirname(os.path.abspath(__file__)) # Можно указать свой путь вот так: # base_directory = 'свой/путь/до/папки' rename_directories(base_directory) @ Quote Link to comment Short link Share on other sites More sharing options...
DraugDM Posted August 16 Share Posted August 16 6 минут назад, Qirashi сказал: Куда проще написать внешний скрипт парсер который будет переименовывать папки с версией. Или писать кастомные функции для inno setup. Мне проще, у меня все моды в архивах и кастомные функции распаковки. Т.е так как привязка к чекбоксам, я могу несколько архивов поочерёдно распаковать в 1 папку. Насколько я знаю без костылей напрямую inno setup не даст это сделать. И у тебя выбор, либо переписывать скрипт, либо делать внешнюю утилиту на батнике. Я бы советовал питон. Что-то такое: import os """ Скрипт парсит все папки которые рядом с скриптом. Входит в каждую и ищет в ней old_version Если есть совпадение, то заменяет old_version на new_version """ # Какую версию на какую заменить old_version = "1.28.0.0" new_version = "1.29.0.0" def rename_directories(base_dir): for entry in os.listdir(base_dir): entry_path = os.path.join(base_dir, entry) if os.path.isdir(entry_path): for sub_entry in os.listdir(entry_path): sub_entry_path = os.path.join(entry_path, sub_entry) if os.path.isdir(sub_entry_path) and old_version in sub_entry: new_name = sub_entry.replace(old_version, new_version) new_path = os.path.join(entry_path, new_name) os.rename(sub_entry_path, new_path) print(f"Папка переименована: {sub_entry_path} -> {new_path}") # Путь до директории где лежит скрипт. base_directory = os.path.dirname(os.path.abspath(__file__)) # Можно указать свой путь вот так: # base_directory = 'свой/путь/до/папки' rename_directories(base_directory) спс! буду пробывать... @ Quote Link to comment Short link Share on other sites More sharing options...
Qirashi Posted August 16 Share Posted August 16 Удачи) @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.