Проверка наличия процесса в диспетчере задач
Надо запустить программу program.exe и пока она выполняется проверять каждые 5 сек не появился ли процесс werfault.exe. И если появился werfault.exe, то принудительно завершить его и program.exe и после продолжить выполнение батника. или продолжить выполнение батника, если программа program.exe сама завершила выполнение и werfault.exe не появился.
|
Цитата:
Цитата V!RTuE
и после продолжить выполнение батника. »
|
И что должно происходить в этом «продолжении выполнения»?
Цитата:
Цитата V!RTuE
или продолжить выполнение батника, если программа program.exe сама завершила выполнение и werfault.exe не появился. »
|
Тот же самый вопрос, что и выше.
|
Код:
@echo off
start "" "program.exe"
:#
(
tasklist| findstr /bilc:"werfault.exe">nul
)&& (
taskkill /f /im "werfault.exe" /t>nul
taskkill /f /im "program.exe" /t>nul
)|| (
timeout /t 5 /nobreak>nul
(
tasklist| findstr /bilc:"program.exe">nul
)&& (
goto:#
)
)
:: Продолжение работы:
for /l %%i in (1 1 10000) do echo Continuation...
exit /b
|
Цитата:
Цитата Georgio
Код:
:: Продолжение работы:
for /l %%i in (1 1 10000) do echo Continuation...
»
|
:lol: Наверное, так и надо делать: каков вопрос — таков ответ.
|
Цитата:
Цитата Iska
И что должно происходить в этом «продолжении выполнения»? »
|
Имелось ввиду, что батник выполняет много действий (запускает программы, архивирует, пишет логи. Также одним из действий является запуск program.exe (с непредвиденным результатом работы иногда, для чего и требуется отследить появления процесса werfault.exe) и после также продолжается запись логов, архивирование и т.д. Просто если появится процесс werfault.exe, то пока не закрыть его, батник не продолжит свою работу.
А так спасибо Georgio, всё работает :)
Цитата:
Цитата Iska
Цитата Georgio:
Код:
:: Продолжение работы:
for /l %%i in (1 1 10000) do echo Continuation...
»
Наверное, так и надо делать: каков вопрос — таков ответ. »
|
шутку не понял :( что выполнит эта команда? (не пробовал запускать)
|
Цитата:
Цитата V!RTuE
шутку не понял что выполнит эта команда? (не пробовал запускать) »
|
Десять тысяч раз напишет Вам «Продолжаю выполнение» — всё как заказывали ;).
|
Georgio, вопрос на засыпку. Всегда ли можно ключи всех команд записывать так? вместо findstr /b /i /l /c записать findstr /bilc
Например xcopy /rych будет правильной записью? или надо xcopy /r /y /c /h и вообще между ключами обязательны пробелы?
|
V!RTuE, далеко не всегда. Это делается для сокращения кода, и, если не знаете, можно или нет, то писать нужно "/r /y /c /h". Да, команда "xcopy" допускает все три варианта: "/r /y /c /h", "/r/y/c/h" и "/rych". Команда "findstr" допускает два варианта: "/b /i /l" и "/bil". А команда "find" допускает только один вариант: "/c /v".
|
Цитата:
Цитата Georgio
V!RTuE, далеко не всегда. Это делается для сокращения кода, и, если не знаете, можно или нет, то писать нужно "/r /y /c /h". Да, команда "xcopy" допускает все три варианта: "/r /y /c /h", "/r/y/c/h" и "/rych". Команда "findstr" допускает два варианта: "/b /i /l" и "/bil". А команда "find" допускает только один вариант: "/c /v". »
|
а где можно почитать какие команды допускают такое написание, а какие нет? или это всё ваш личный опыт?
|
Цитата:
Цитата V!RTuE
а где можно почитать какие команды допускают такое написание, а какие нет? »
|
Практически нигде.
Цитата:
Цитата V!RTuE
или это всё ваш личный опыт? »
|
Именно так.
|
Время: 18:11.
© OSzone.net 2001-