Показать полную графическую версию : start /wait Не работает должным образом.
angel_lyucifer
03-12-2015, 01:31
Привет всем.
start /wait не работает должным образом.
@Echo OFF
CHCP 1251 >nul
start "Удаление ДКМ 3.0 x64" /WAIT "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0\Uninstal-ДКМ3.0.exe"
RMDIR /s /Q "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0"
Такой вариант не работает...
@Echo OFF
CHCP 1251 >nul
start "" /WAIT "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0\Uninstal-ДКМ3.0.exe"
RMDIR /s /Q "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0"
И такой вариант не работает...
Что не так я делаю?
angel_lyucifer, оформляйте код не тэгом [php] (http://forum.oszone.net/misc.php?do=bbcode#php), а тэгом [code] (http://forum.oszone.net/misc.php?do=bbcode#code).
Поясните, что значит — «не работает».
angel_lyucifer
03-12-2015, 19:35
Команда start "" /WAIT не дожидается окончание работы Uninstal-ДКМ3.0.exe.
Мне нужно что бы сначала выполнялась команда start "" /WAIT "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0\Uninstal-ДКМ3.0.exe"
А патом выполнялась команда RMDIR /s /Q "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0"
blacktor
03-12-2015, 20:39
Uninstal запускает другие обработчики, а себя завершает, он ведь и сам должен удалиться по завершению. Убиться самому винда не позволяет.
Наверно дело в этом. Любой Uninstal сделает такой же ответ скрипту.
Любой Uninstal сделает такой же ответ скрипту. »
Не любой, но, полагаю, для данного случая может оказаться именно так.
angel_lyucifer, проверьте высказанную коллегой blacktor гипотезу, либо посредством Process Explorer — «глазками», либо посредством Process Monitor — фильтром на события «Process Create», «Process Start» и «Process Exit».
angel_lyucifer
04-12-2015, 19:45
Спасибо всем, за подсказки.....
angel_lyucifer
05-12-2015, 03:10
Запущенный Uninstal-ДКМ3.0.exe копировался с таким же именем в папку темп и от туда снова запускался...
После копирования самого себя в папку он тут же завершал свой процесс.
Тогда мне пришлось извращаться, вот так:
CHCP 1251 >nul
start "" /HIGH "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0\Uninstal-ДКМ3.0.exe"
:scan_process_x64
tasklist|Find /i "Uninstal-ДКМ3.0.exe" || (goto process_x64)
TIMEOUT /T 3 /NOBREAK
goto scan_process_x64
:process_x64
RMDIR /s /Q "%PROGRAMFILES(x86)%\Melcosoft\ДКМ 3.0"
blacktor
05-12-2015, 11:15
Запущенный Uninstal-ДКМ3.0.exe копировался с таким же именем в папку темп и от туда снова запускался... »
ну о чем я и говорил. Расчет на то, что временная папка когда-то там да удалится.
99.9% программ оставляют после себя мусор. А оставшийся 0.01 завершают удаление батником содержащим строки типа
del uninstal.exe
del uninstal.bat
А сам cmd.exe закрывается и остается после выполнения этой процедуры.
Не любой, но, полагаю, для данного случая может оказаться именно так. »
так произойдет, если сам uninstal останется после удаления и просто закроется
angel_lyucifer
05-12-2015, 19:33
99.9% программ оставляют после себя мусор.»
Я и об этом позаботился, я не весь алгоритм написал сюда... =)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.