Цитата sov44:
если не найден, прекращать исполнение sfx »
|
Команда
RD не прекращает исполнение SFX, прекратить его можно командой
TaskKill, но убирать мусор будет некому.
Цитата sov44:
писать в каждой команде if exist не радует. »
|
Можно создать переменную и использовать ее много раз, это хоть немного, но скрасит конфиг.
Пример
Код:
;!@Install@!UTF-8!
SetEnvironment="Name=EmEditor Pro"
SetEnvironment="Vers= v14.5.900 Rus [%%P]"
;
SetEnvironment="PFx86=%ProgramFiles%\\EmEditor"
SetEnvironment="PFx64=%ProgramW6432%\\EmEditor"
;
SetEnvironment="pathfile=custompath.lst"
SetEnvironment="InputPathx86=x86:hidcon:cmd /c InputPath.exe -SetEnvironment=\"pathfile=%pathfile%\" -InstallPath=\"%PFx86:\\=\\\\%\" -ExtractPathTitle=\"Установка %Name% [x86\x64]\""
SetEnvironment="InputPathx64=x64:hidcon:cmd /c InputPath.exe -SetEnvironment=\"pathfile=%pathfile%\" -InstallPath=\"%PFx64:\\=\\\\%\" -ExtractPathTitle=\"Установка %Name% [x86\x64]\""
SetEnvironment="GetInstallPath=%%P:hidcon:cmd /c For /F \"usebackq delims=\" %a In (\"%pathfile%\") Do"
;
SetEnvironment="DelOldVer=%%P:hidcon:cmd /c For /F \"tokens=2 delims={}\" %a In ('Dir /b /s %windir%\\installer\\EmEditor*.exe 2^>Nul') Do MsiExec /x{%a}"
SetEnvironment="DelLang=%GetInstallPath% For %i In (1028 1029 1031 1036 1040 1041 1042 1043 1057 2052 2057 3082) Do (RD /S/Q \"%a\\mui\\%i\" \"%a\\PlugIns\\mui\\%i\")"
SetEnvironment="DelEula=%GetInstallPath% Del /Q \"%a\\eula_*.rtf\" \"%a\\PlugIns\\mui\\%i\""
SetEnvironment="CopyMacros=%GetInstallPath% xCopy \"My Macros\" \"%a\\My Macros\" /s /e /i /y"
SetEnvironment="swM_Folder=%GetInstallPath% Reg Add \"HKCU\\Software\\EmSoft\\EmEditor v3\\Common\" /v \"MacroFolder\" /t REG_SZ /d \"%a\\My Macros\" /f"
SetEnvironment="number_x86=64A899C7-1C64-40EE-814E-22757A8EACA8"
SetEnvironment="number_x64=F33C06EF-F3AC-40CC-9A28-77BD5FBE708E"
SetEnvironment="AutoUpdateOff=%%P:hidcon:Reg Add \"HKCU\\Software\\Caphyon\\Advanced Updater\\{%number_%%P%}\\Settings\" /v \"AutoUpdatePolicy\" /t REG_DWORD /d \"0x0\" /f"
SetEnvironment="reg=EmEditor.reg"
SetEnvironment="AddReg=%%P:hidcon:cmd /c If Exist \"%%S\\%reg%\" (REGEDIT /S \"%%S\\%reg%\") Else REGEDIT /S %reg%"
SetEnvironment="cmdline=TRANSFORMS=\":1049\" EXE_CMD_LINE=\"/exenoupdates /exelang 1049\""
;
Title="Установка %Name% [x86\x64]"
BeginPrompt="Сейчас будет установлен %Name%%Vers%
Если в системе будет обнаружена старая версия EmEditor, то
она будет удалена автоматически перед началом установки.
Нажав 'OK', удерживая [Shift], можно выбрать путь установки"
FinishMessage="%Name%%Vers% установлен!"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Придется подождать..."
; Простая установка
RunProgram="%InputPath%%P% -y"
RunProgram="%DelOldVer% /qb"
RunProgram="fm20:%GetInstallPath% emed_%%P\\emed_%%P.msi /qb APPDIR=\"%a\\\" %cmdline%"
RunProgram="%DelLang%"
RunProgram="%DelEula%"
RunProgram="%AutoUpdateOff%"
; Настройки
RunProgram="%AddReg%"
RunProgram="%CopyMacros%"
RunProgram="%swM_Folder%"
;
; Установка с выбором папки установки
AutoInstall="%InputPath%%P%"
AutoInstall="%DelOldVer% /qb"
AutoInstall="fm20:%GetInstallPath% emed_%%P\\emed_%%P.msi /qb APPDIR=\"%a\\\" %cmdline%"
AutoInstall="%DelLang%"
AutoInstall="%DelEula%"
AutoInstall="%AutoUpdateOff%"
; Настройки
AutoInstall="%AddReg%"
AutoInstall="%CopyMacros%"
AutoInstall="%swM_Folder%"
;
; Скрытая установка
AutoInstall1="%InputPath%%P% -y"
AutoInstall1="%DelOldVer% /qn"
AutoInstall1="%GetInstallPath% emed_%%P\\emed_%%P.msi /qn APPDIR=\"%a\\\" %cmdline%"
AutoInstall1="%DelLang%"
AutoInstall1="%DelEula%"
AutoInstall1="%AutoUpdateOff%"
; Настройки
AutoInstall1="%AddReg%"
AutoInstall1="%CopyMacros%"
AutoInstall1="%swM_Folder%"
;
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
SfxAuthor="gora-sah <gora@7zsfx.info>"
;!@InstallEnd@!
Цитата nibble74:
лучше все команды в батник прописать »
|
Вполне резонное предложение.