Показать полную графическую версию : .: Файлы конфигурации 7z SFX. Помощь и советы :.
Подскажите, как через файл конфигурации удалить ярлык
%ALLUSERSPROFILE%\Главное меню\Программы\прога.lnk
Delete="%SfxFolder23%\\прога.lnk"
или для старых модулей:
Delete="%7zSfxFolder23%\\прога.lnk"
specialist
14-01-2013, 11:29
sov44, список переменных http://forum.oszone.net/showthread.php?p=1850742#post1850742
список переменных »
В последней справке переменным модуля посвящена целая страница. Там есть пример конфига для вывода (на экран или в файл) полного списка всех переменных модуля со всеми вновь появившимися и переименованными переменными.
specialist
24-01-2013, 14:04
испытываю странную проблему:
в файле установщика есть команда на распаковку файлов рядом с ним, если они есть (переменная %unpack%)
ключ -aiu передаваемый им просто распаковывает их содержимое в тот же каталог куда и основной sfx (шаблон ниже под спойлером)
проблема в следующем: была такая мысль - если файлы есть они распаковываются и дополняют функционал, если их нет - ничего не распаковывается и функционал базовый, а получается, что если файлы все есть, то все отлично копируется, распаковывается как следует, а если хоть одного файла из списка в переменной %unpack% нет ничего из остальных не дораспаковывается, какой то затык с символом & чтоли происходит (если каждую команду отдельной переменной прописать вроде все в порядке, но уж очень много переменных придется натыкать по конфигу).
и дополнительный вопрос. можно ли как то реализовать в конфиге команду на запуск выполняющуюся при любом из запусков
runprogram / autoinstall / autoinstallx чтобы ее не нужно было прописывать к каждому autoinstallx
пробовал executefile с ExecuteParameters но что то она сложные комбинации не воспринимает, вечно сыплясь на "файл не найден" или просто запуская командную строку и не выполняя то что прописано в ExecuteParameters в наборе типа "%windir%\\system32\\cmd.exe" /c if exist ...
;!@Install@!UTF-8!
SetEnvironment="Vers=2013"
SetEnvironment="Name=Microsoft Office "
SetEnvironment="unpack=hidcon:cmd /c if exist \"%%S\\activator.exe\" copy /y \"%%S\\activator.exe\" \"%Temp%\\%Vers%\" & if exist \"%%S\\Updates.exe\" \"%%S\\Updates.exe\" -aiu & if exist \"%%S\\Visio_Project_SPD_%Vers%_RePack.exe\" \"%%S\\Visio_Project_SPD_%Vers%_RePack.exe\" -aiu"
SetEnvironment="pa=hidcon:cmd /c start /wait setup.exe /config "
InstallPath="%Temp%\\%Vers%"
GUIMode="1"
GUIFlags="2048"
MiscFlags="4"
Title="Установка %Name%%Vers% V13.1 RePack by SPecialiST"
OverwriteMode="1"
ExtractTitle="Распаковка файлов Office ..."
ExtractDialogText="Придется немного подождать..."
BeginPrompt="Сейчас будет установлен %Name%%Vers%
Нажав [Да] можно сделать выбор устанавливаемых компонентов
или выполнить другие операции.
При удерживании клавиши [Shift] и нажатию [Да] происходит
установка всех приложений в автоматическом видимом режиме.
Другие опции запуска можно посмотреть запустив файл с ключом /?"
; -'Да' - ручная установка с возможностью выбора компонентов и опций
RunProgram="%unpack%"
RunProgram="setup.cmd"
; -'Да' с зажатым Shift - видимая автоматическая установка всего набора
AutoInstall="%unpack%"
AutoInstall="%pa%ProPlus.WW\visible.xml"
AutoInstall="hidcon:cmd /c if exist VisPro.ww start /wait setup.exe /config VisPro.ww\visible.xml"
AutoInstall="hidcon:cmd /c if exist prjpro.ww start /wait setup.exe /config prjpro.ww\visible.xml"
AutoInstall="hidcon:cmd /c if exist sharepointdesigner.ww start /wait setup.exe /config sharepointdesigner.ww\visible.xml"
; -ais - полная версия ProPlus
AutoInstalls="%unpack%"
AutoInstalls="%pa%ProPlus.WW\visible.xml"
AutoInstallS="%unpack%"
AutoInstallS="%pa%ProPlus.WW\invisible.xml"
; -aiw - Word+Excel
AutoInstallw="%unpack%"
AutoInstallw="%pa%ProPlus.WW\visible.xml /adminfile ProPlus.WW\we.MSP"
AutoInstallW="%unpack%"
AutoInstallW="%pa%ProPlus.WW\invisible.xml /adminfile ProPlus.WW\we.MSP"
; -aip - Word+Excel+PowerPoint
AutoInstallp="%unpack%"
AutoInstallp="%pa%ProPlus.WW\visible.xml /adminfile ProPlus.WW\wep.MSP"
AutoInstallP="%unpack%"
AutoInstallP="%pa%ProPlus.WW\invisible.xml /adminfile ProPlus.WW\wep.MSP"
; -aio - Word+Excel+PowerPoint+Outlook
AutoInstallo="%unpack%"
AutoInstallo="%pa%ProPlus.WW\visible.xml /adminfile ProPlus.WW\wepo.MSP"
AutoInstallO="%unpack%"
AutoInstallO="%pa%ProPlus.ww\invisible.xml /adminfile ProPlus.ww\wepo.MSP"
; -aie - Word+Excel+Outlook
AutoInstalle="%unpack%"
AutoInstalle="%pa%ProPlus.WW\visible.xml /adminfile ProPlus.WW\weo.MSP"
AutoInstallE="%unpack%"
AutoInstallE="%pa%ProPlus.ww\invisible.xml /adminfile ProPlus.ww\weo.MSP"
; -aiv - Visio Professional
AutoInstallv="%unpack%"
AutoInstallv="hidcon:cmd /c if exist VisPro.ww start /wait setup.exe /config VisPro.ww\visible.xml"
AutoInstallV="%unpack%"
AutoInstallV="hidcon:cmd /c if exist VisPro.ww start /wait setup.exe /config VisPro.ww\invisible.xml"
; -aij - Project Professional
AutoInstallj="%unpack%"
AutoInstallj="hidcon:cmd /c if exist prjpro.ww start /wait setup.exe /config prjpro.ww\visible.xml"
AutoInstallJ="%unpack%"
AutoInstallJ="hidcon:cmd /c if exist prjpro.ww start /wait setup.exe /config prjpro.ww\invisible.xml"
; -aid - SharePoint Designer
AutoInstalld="%unpack%"
AutoInstalld="hidcon:cmd /c if exist sharepointdesigner.ww start /wait setup.exe /config sharepointdesigner.ww\visible.xml"
AutoInstallD="%unpack%"
AutoInstallD="hidcon:cmd /c if exist sharepointdesigner.ww start /wait setup.exe /config sharepointdesigner.ww\invisible.xml"
HelpText="Основные ключи:
-ais = полная версия ProPlus*
ИЛИ
-aiw = Word+Excel*
-aie = Word+Excel+Outlook*
-aip = Word+Excel+PowerPoint*
-aio = Word+Excel+PowerPoint+Outlook*
+ В случае наличия рядом файла репака
VisPro_Project_SPD_%Vers%_RePack.exe :
-aiv = MS Office VisPro Professional*
-aij = MS Office Project Professional*
-aid = MS Office SharePoint Designer*
* = Чувствительно к регистру, например:
-aie = ВИДИМАЯ установка Word+Excel+Outlook
-aiE = СКРЫТАЯ установка Word+Excel+Outlook
Дополнительные ключи:
-gm2 = скрыть диалог распаковки файлов
Примеры использования
-ais = видимая установка полной версии
-aiS -gm2 = скрытая установка полной версии
-aiw = видимая установка Word + Excel
"
Delete="%Temp%\\%Vers%"
;!@InstallEnd@!
как проверить в чем косяк
испытываю странную проблему »
Проблема в cmd строке. В том, что она не соответствует задуманной Вами логике, а выполняет именно то, что в ней написано.
Для выполнения задуманного нужно каждое условие заключить в отдельный блок, примерно так:SetEnvironment="unpack=hidcon:cmd /c (if exist \"%%S\\activator.exe\" copy /y \"%%S\\activator.exe\" \"%Temp%\\%Vers%\") & (if exist \"%%S\\Updates.exe\" \"%%S\\Updates.exe\" -aiu) & (if exist \"%%S\\Visio_Project_SPD_%Vers%_RePack.exe\" \"%%S\\Visio_Project_SPD_%Vers%_RePack.exe\" -aiu)"можно ли как то реализовать в конфиге команду на запуск выполняющуюся при любом из запусков »
Нельзя.
Но можно повесить эту команду на отдельный ключ, сделав, например:AutoInstall0="%unpack%" И дописывать этот ключ в команды запуска:-ai0w = Word+Excel*
-ai0e = Word+Excel+Outlook*
-ai0p = Word+Excel+PowerPoint*
-ai0o = Word+Excel+PowerPoint+Outlook*
Не пренебрегайте заглавными буквами в начале предложений при написании постов, читать Ваш текст затруднительно.
specialist
24-01-2013, 16:33
gora, в очередной раз огромное спасибо за помощь, теперь все заработало так, как задумывалось.
Приведите пожалуйста пример файла конфигурации с определение разрядности системы и автоматической установки необходимого приложения.
popt2t, ну к примеру, в теме аддона LibreOffice, Apache OpenOffice и InfraResurs пользователь ks7715 аттачил пример батников и автоустановки (там MSI, но IS и NSIS тоже наверняка успешно повезет) программ: http://forum.oszone.net/post-1950387-962.html
Там только батники, можете попробовать копипастить в config-файле по каждой команде.
alert30, это немного не то. Да и не охота возиться с батниками. По идеи все можно реализовать непосредственно через сам файл конфигурации, как например сделано в аддоне WinRAR (http://forum.oszone.net/post-896256.html) от gora. Но как это сделать я не знаю. Вот и решил здесь спросить.
popt2t, http://forum.oszone.net/post-1908642.html#post1908642
Проблема в том, что после тихой установки Your Uninstaller происходит её автоматический запуск. Пробовал убить процесс после установки, и удалить директорию из "c:\Documents and Settings\All Users\Главное меню\Программы\Your Uninstaller! 7", но не получается. Подскажите, в чем ошибка?
RunProgram="hidcon:no_upd.cmd"
RunProgram="%%P:hidcon:cmd /c yusetup7p.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
RunProgram="%%P:hidcon:cmd /c TASKKILL /F /IM urmain.exe"
RunProgram="%%P:hidcon:cmd /c del /q \"%SfxFolder23%\Your Uninstaller! 7\""
RunProgram="fm5:hidcon:cmd /c Move %NameInf% %WINDIR%\\INF"
RunProgram="rundll32 advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
Можно ли для параметра AutoInstallX использовать буквенно-циферный идентификатор? Например AutoInstallX32.
буквенно-циферный идентификатор »
Нет, нельзя. Литера должна быть только одна. X - литера варианта. В качестве литеры X допустимы [0...9], [A...Z], [a...z].
Нет, нельзя. Литера должна быть только одна. »
Спасибо за скорый ответ. Я так и предполагал, но решил спросить здесь для уверенности.
specialist
06-02-2013, 17:53
Можно ли для параметра AutoInstallX использовать буквенно-циферный идентификатор? Например AutoInstallX32. »
но можно вероятно приколоться и наделать пустых действий на установку или разбить существующие действия по
AutoInstallX=
AutoInstall3=
AutoInstall2=
а потом запускать инсталлятор .exe /aiX32
:)
Ребята здравствуйте, подскажите пожалуйста такую вещь, как реализовать в самораспаковающем архиве такую вещь:
Например в InnoSetup создается инсталлятор, при его запуске в конце, когда установилась прога, запускается вызов sfx модуля. Вот тут проблема в чем? Самораспаковывающий архив в тихом режиме должен распаковать свое содержимое, но зная куда пользователь поставил инсталлятором так сказать свою программу, путь полный, например это может быть любой диск\Программа\ и вот в папку программы sfx и должен выгрузить свои файлы. Есть ли команды, какие пути абсолютные или другие прописывать и какими ключами необходимо пользоваться? Надеюсь описал доступно и понятным языком. Не могу создать такой интеллектуальный самораспаковывающийся архив, который бы знал куда доставлять необходимые дополнительные файлы в программу, умел бы находить путь, а именно диск и папку, куда юзер установить решил программу.
Спасибо. Опишите хоть метод или надо батник какой дополнительный писать, но может есть возможность указать какие либо строки и команды при создании sfx? В общем намекните алгоритм.
nakula, возможны три варианта решения задачи (т.к. конкретных названий программы и ее путей не указано, будет все делать на примере программы "Punto Switcher ":
1 Заранее прописать путь распаковки в конфиге SFX:
InstallPath="c:\\Program Files (x86)\\Yandex\\Punto Switcher"
2 Если заранее путь неизвестен, но известен на момент запуска SFX, то будем использовать ключ для запуска SFX:
sfx.exe -InstallPath="c:\\Program Files (x86)\\Yandex\\Punto Switcher"
Вариант 2 можно использовать одновременно с вариантом 1. Тогда при отсутствии ключа установка будет происходить по "умолчальному" пути, а, в случае необходимости, этот путь можно изменить на другой ключом.
3 Путь неизвестен и его надо найти непосредственно из запущенного SFX.
В этом случае нужно знать некоторые подробности искомой папки и файлов в ней дабы выбрать достаточно уникальный файл и путь к нему не повторяющийся в других папках. Для Punto Switcher выбираем Punto Switcher\Data\triggers.dat. Имя файла + путь к нему достаточно уникальны для нашей задачи идентификации папки Punto Switcher.
В конфиге удаляем параметр InstallPath, дабы распаковка происходила во временную папку, и пишем такую строку:RunProgram="hidcon:cmd /c For %z In (c d e f g h i j k l m n o p q r s t u v w x y z) Do For /F \"delims=\" %a In ('Dir /b /s \"%z:\\\" 2^>Nul ^| Find \"Punto Switcher\\Data\\triggers.dat\"') Do Set fp=%a& Call xCopy * \"%%fp:\\Data\\triggers.dat=%%\" /s /e /i /y /h /k& Exit" SFX будет искать указанный файл на всех дисках в папках любой глубины вложенности и как только найдет его, то скопирует все содержимое своего архива в указанную папку Punto Switcher с сохранением всей структуры папок и файлов в архиве. После этого поиск прекратится. Если на разных дисках или в разных папках будут установлены другие копии программы Punto Switcher с искомым файлом, они будут проигнорированы, ибо SFX не может знать в какою именно копию программы нужно произвести распаковку.
gora
Огромная благодарность. Ваше объяснение доступно для понимание и разжевано в деталях. Очень полезно и информативно. Я давно искал метод решения и вы, очень помогли. Полезное пояснение не только для меня одного, надеюсь. Еще раз, спасибо, буду пробовать. ) Отпишусь позже!
можете пожалуйста помочь с наработоспособным конфигом? ))) нужно для XP x64 :)
начну издалека ))
есть работоспособная бат-команда,
cmd /c If Exist "C:\Program Files (x86)\vdf_fusebundle.zip" (Reg Add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "Update_and_del_vdf.bat" /t REG_SZ /d "cmd /c If Exist \"C:\Program Files ^^(x86^^)\Update_and_del_vdf.bat\" \"C:\Program Files ^^(x86^^)\Update_and_del_vdf.bat\"")
которая заносит в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce параметр REG_SZ с именем Update_and_del_vdf.bat и значением
cmd /c If Exist "C:\Program Files (x86)\Update_and_del_vdf.bat" "C:\Program Files (x86)\Update_and_del_vdf.bat"
если её переделываю в конфиг по всем правилам (которые прописаны в хелпе по модифицированным модулям), то не работает )) (похоже из-за экранизации скобочек, т.к. команда нормально работает в x86, само собой с другими путями)
RunProgram="x64:cmd /c If Exist \"C:\\Program Files (x86)\\vdf_fusebundle.zip\" (Reg Add HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce /v \"Update_and_del_vdf.bat\" /t REG_SZ /d \"cmd /c If Exist \\\"C:\\Program Files ^^(x86^^)\\Update_and_del_vdf.bat\\\" \\\"C:\\Program Files ^^(x86^^)\\Update_and_del_vdf.bat\\\"\")"
а если в эту конфиг-команду добавить перед теми скобочками (в каждое место, где уже есть ^^) еще один экранный символ (т.е. ^), то конфиг работает, но заносит в реестр само собой неправильный параметр ))
cmd /c If Exist "C:\Program Files ^(x86^)\Update_and_del_vdf.bat" "C:\Program Files ^(x86^)\Update_and_del_vdf.bat"
з.ы. : нужна именно одна команда (батник не устроит), причём рабочая )))
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.