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

Название темы: UpdatePack-XPSP2-Rus версия 7.10.12
Показать сообщение отдельно

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


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

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


Где-то в прошлой ветке пробегало предложение по доработке скрипта, чтоб можно было выборочно конфигурить набор дополнений.
Сделал подобную доработку - работает это так:
запускаем "__PATCH.CMD Confugure <название>"
1 проверяется наличие каталога Configs - если отосутствует - создается
2 проверяется наличие файла Configs/<название>
если отосутствует - создается, в него копируется спиок всех установленных дополнений
если такой файл есть - проверяется наличие указаных в нем дополнений
3 далее скрипт работает как обычно

Дополнительно создается переменная !Configure! в которую помещается название конфигурации.
И еще маленький бонус - дополнения накладываются на дистрибутив в том порядке в каком они идут в файле.

Код: Выделить весь код
If "%~1"=="" (
 Set Configure=

  GoTo :MakeAddonsList

) Else If /I "%~1"=="Configure" (
  Set Configure=%~2

  If "!Configure!"=="" (
    Call :Quit "Ошибка: Необходимо ввести название конфигурации."
  )

:MakeAddonsList
  Set SeparateAddons=

  Echo .>Temp\Folders.txt
  If Exist Addons\*.* (
    For /F "UseBackQ Delims=" %%I In (`Dir Addons /AD /B /ON 2^>nul`) Do (
      Echo Addons\%%~I>>Temp\Folders.txt
    )
  )

  If Not "!Configure!"=="" (
    If Not Exist Configs MD Configs
    If Not Exist "Configs\!Configure!" (
      Type Temp\Folders.txt>"Configs\!Configure!"
      Call :Quit "Создан файл конфигурации: !Configure!"
    )

    Echo Сборка конфигурации !Configure!

    Rem Проверить наличие входящих в конфигурацию аддонов
    Set AddonsNoFound=
    For /F "UseBackQ Delims=" %%I In ("Configs\!Configure!") Do (
      Set AddonFound=
      For /F "UseBackQ Delims=" %%J In (`Find /I "%%I" Temp\Folders.txt`) Do (
        If "%%I"=="%%J" Set AddonFound=%%I
      )
      If "!AddonFound!"=="" (
        Echo Ошибка: дополнение %%I не найдено.
        Set AddonsNoFound=1
      )
    )
    If "!AddonsNoFound!"=="1" Call :Quit

    Rem Собираем конфигурацию
    Type "Configs\!Configure!">Temp\Folders.txt
    Set AddonFound=
  )
) Else (
  Set SeparateAddons=1

:NextParam
  If Not "%~1"=="" (
    If Exist "Addons\%~1\*.*" (
      Echo Addons\%~1>>Temp\Folders.txt
    ) Else (
      Call :Quit "Ошибка: дополнение %~1 не найдено."
    )
    Shift
    GoTo :NextParam
  )
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:23, 15-10-2007 | #46

Название темы: UpdatePack-XPSP2-Rus версия 7.10.12