Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Скрипт для аддона DrWeb не работает на Т13 (http://forum.oszone.net/showthread.php?t=213422)

volk1234 16-08-2011 23:25 1733405

Скрипт для аддона DrWeb не работает на Т13
 
Приветствую.

Наваял скрипт для аддона, на "живой" системе все работает на ура.
Скрипт запускается из 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 1733658

volk1234,

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

El Sanchez 18-08-2011 17:01 1734657

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 1735035

Кавычки экранировать пришлось, поскольку установщик drweb по другому их не принимает

El Sanchez 19-08-2011 13:02 1735150

volk1234, пардон, с синтаксисом не разобрался. Пост исправил.

volk1234 30-08-2011 00:44 1742177

Прикол в том, что с полным путем аддон выкидывает ошибку:
(не дословно) Не найден файл журнала 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 1743327

Цитата:

Цитата volk1234
И еще прикол, что аналогичный аддон работает вот с таким синтаксисом: »

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

volk1234 31-08-2011 20:00 1743491

Да, но тогда скрипт не ждет завершения выполнения команды.

SendMessage 31-08-2011 20:17 1743503

Цитата:

Цитата volk1234
Да, но тогда скрипт не ждет завершения выполнения команды. »

Как вариант - можно цикл с проверкой на завершение процесса вставить. Что-то типа:
Код:

...
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 1743563

При работе над addon-ом пятой версии - ссылка здесь, проблема была в определении переменной TEMP.... вероятнее всего, причина в этом. Если будет время проверю...

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

set TEMP=%windir%\TEMP

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

да и:

pushd %~dp0

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

popd

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

volk1234 01-09-2011 02:12 1743730

Проблема решена, на Т-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



Время: 00:26.

Время: 00:26.
© OSzone.net 2001-