Войти

Показать полную графическую версию : [решено] Скрипт для аддона DrWeb не работает на Т13


volk1234
16-08-2011, 23:25
Приветствую.

Наваял скрипт для аддона, на "живой" системе все работает на ура.
Скрипт запускается из 7zip sfx при распаковке во временную папку.
командой RunProgram="fm0:hidcon:cmd /c \"%%T\\dwup_\\addon.cmd \" /s /e /i /y"
При установке в качестве аддона на Т13 ругается- невозможно найти файл drweb-600-win-x86.exe

@Echo off

Call :dvars$

:Install2One
Call :InstallWeb

Goto :EOF

:InstallWeb
Start "" /wait drweb-600-win-x86.exe /S /V"INSTALLDIR=\"%InstPathD%\\" TRANSFORMS=\"%~dp0drweb60.mst\" /qb"
Xcopy drweb32.key "%InstPathD%" /E /Q /H /R /Y

Goto :EOF

....
....

:dvars$

Set InstPathD=%ProgramFiles%\DrWeb



В чем загвоздка? В конце секции :dvars$ нет команды Goto :EOF или Exit потому как она находиться в конце файла. Да и судя по ошибке - начинает исполняться первая команда из секции :InstallWeb

Anton04
17-08-2011, 12:08
volk1234,

Возможно просто нужно прописать полный путь в Start "" /wait drweb-600-win-x86.exe что-то типа Start "" /wait "c:\temp\drweb-600-win-x86.exe"

El Sanchez
18-08-2011, 17:01
volk1234, не нужно в батниках экранировать кавычки так, как это делается в конфигурационных файлах 7zsfx, да и полный путь необходим, как сказал Anton04:

Start "" /wait "%~dp0drweb-600-win-x86.exe" /S /V"INSTALLDIR=\"%InstPathD%\" TRANSFORMS=\"%~dp0drweb60.mst\" /qb"
Xcopy "%~dp0drweb32.key" "%InstPathD%" /E /Q /H /R /Y

volk1234
19-08-2011, 10:10
Кавычки экранировать пришлось, поскольку установщик drweb по другому их не принимает

El Sanchez
19-08-2011, 13:02
volk1234, пардон, с синтаксисом не разобрался. Пост исправил.

volk1234
30-08-2011, 00:44
Прикол в том, что с полным путем аддон выкидывает ошибку:
(не дословно) Не найден файл журнала windows и установка замирает.

И еще прикол, что аналогичный аддон работает вот с таким синтаксисом:
@Echo Off
echo.

Title Dr.Web install

pushd %~dp0

set TEMP=%windir%\TEMP
set mstname=drweb60.mst

drweb-600-win-x86.exe /S /v/qn /V"/quiet TRANSFORMS=%mstname% /l* %windir%\drweb.log"

set "key=hklm\software\doctor web\installedcomponents"
set "param=InstallPath"
FOR /F "usebackq tokens=3 delims= " %%i IN (`reg query "%key%" /s ^| findstr /i /c:"%param%"`) do (
set "DrWebInstallPath=%%i"
)
copy /y "%~dp0drweb32.key_" "%DrWebInstallPath%drweb32.key"

popd

GoTo :EOF

Anton04
31-08-2011, 15:54
И еще прикол, что аналогичный аддон работает вот с таким синтаксисом: »

Дело в том что команда Start не работает без указании полного пути к файлу. Так что последний вариант вполне рабочий.

volk1234
31-08-2011, 20:00
Да, но тогда скрипт не ждет завершения выполнения команды.

SendMessage
31-08-2011, 20:17
Да, но тогда скрипт не ждет завершения выполнения команды. »
Как вариант - можно цикл с проверкой на завершение процесса вставить. Что-то типа:
...
drweb-600-win-x86.exe /S /v/qn /V"/quiet TRANSFORMS=%mstname% /l* %windir%\drweb.log"

:loop
(ping -n 2 127.0.0.1 & tasklist | find /i "drweb-600-win-x86.exe" || goto next)>nul
goto loop

:next
set "key=hklm\software\doctor web\installedcomponents"
...

otsheln1k
31-08-2011, 21:37
При работе над addon-ом пятой версии - ссылка здесь (http://forum.oszone.net/post-1304874-34.html), проблема была в определении переменной TEMP.... вероятнее всего, причина в этом. Если будет время проверю...

добавь в блок определения переменных:

set TEMP=%windir%\TEMP

на T13 она не определена......

да и:

pushd %~dp0

соответственно

popd

по окончании, не помешают, точно не помню....как то влияло на последующие аддоны...

volk1234
01-09-2011, 02:12
Проблема решена, на Т-13 нет перменной %TEMP%

....

@Echo off

pushd %~dp0
Set TEMP=%windir%\Temp

Call :dvars$

:Install2One
Call :InstallWeb

popd

Goto :EOF

:InstallWeb
Start "" /wait drweb-600-win-x86.exe /S /V"INSTALLDIR=\"%InstPathD%\\" TRANSFORMS=\"%~dp0drweb60.mst\" /qb"
Xcopy drweb32.key "%InstPathD%" /E /Q /H /R /Y

Goto :EOF

....
....

:dvars$

Set InstPathD=%ProgramFiles%\DrWeb




© OSzone.net 2001-2012