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

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

V!RTuE 31-08-2014 20:28 2396709

Проверка наличия процесса в диспетчере задач
 
Надо запустить программу program.exe и пока она выполняется проверять каждые 5 сек не появился ли процесс werfault.exe. И если появился werfault.exe, то принудительно завершить его и program.exe и после продолжить выполнение батника. или продолжить выполнение батника, если программа program.exe сама завершила выполнение и werfault.exe не появился.

Iska 31-08-2014 21:15 2396713

Цитата:

Цитата V!RTuE
и после продолжить выполнение батника. »

И что должно происходить в этом «продолжении выполнения»?

Цитата:

Цитата V!RTuE
или продолжить выполнение батника, если программа program.exe сама завершила выполнение и werfault.exe не появился. »

Тот же самый вопрос, что и выше.

Georgio 31-08-2014 21:22 2396714

Код:

@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


Iska 31-08-2014 22:33 2396742

Цитата:

Цитата Georgio
Код:

:: Продолжение работы:
for /l %%i in (1 1 10000) do echo Continuation...

»

:lol: Наверное, так и надо делать: каков вопрос — таков ответ.

V!RTuE 31-08-2014 22:41 2396749

Цитата:

Цитата Iska
И что должно происходить в этом «продолжении выполнения»? »

Имелось ввиду, что батник выполняет много действий (запускает программы, архивирует, пишет логи. Также одним из действий является запуск program.exe (с непредвиденным результатом работы иногда, для чего и требуется отследить появления процесса werfault.exe) и после также продолжается запись логов, архивирование и т.д. Просто если появится процесс werfault.exe, то пока не закрыть его, батник не продолжит свою работу.

А так спасибо Georgio, всё работает :)
Цитата:

Цитата Iska
Цитата Georgio:
Код:
:: Продолжение работы:
for /l %%i in (1 1 10000) do echo Continuation...
»
Наверное, так и надо делать: каков вопрос — таков ответ. »

шутку не понял :( что выполнит эта команда? (не пробовал запускать)

Iska 31-08-2014 22:58 2396758

Цитата:

Цитата V!RTuE
шутку не понял что выполнит эта команда? (не пробовал запускать) »

Десять тысяч раз напишет Вам «Продолжаю выполнение» — всё как заказывали ;).

V!RTuE 31-08-2014 23:14 2396765

Georgio, вопрос на засыпку. Всегда ли можно ключи всех команд записывать так? вместо findstr /b /i /l /c записать findstr /bilc
Например xcopy /rych будет правильной записью? или надо xcopy /r /y /c /h и вообще между ключами обязательны пробелы?

Georgio 31-08-2014 23:41 2396778

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 31-08-2014 23:56 2396782

Цитата:

Цитата 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". »

а где можно почитать какие команды допускают такое написание, а какие нет? или это всё ваш личный опыт?

Georgio 01-09-2014 00:03 2396786

Цитата:

Цитата V!RTuE
а где можно почитать какие команды допускают такое написание, а какие нет? »

Практически нигде.


Цитата:

Цитата V!RTuE
или это всё ваш личный опыт? »

Именно так.

Iska 01-09-2014 00:37 2396797

Цитата:

Цитата V!RTuE
а где можно почитать какие команды допускают такое написание, а какие нет? »

Опытным путём. Некоторые им делятся ;). Например: Findstr - Search for strings | Windows CMD | SS64.com.


Время: 18:11.

Время: 18:11.
© OSzone.net 2001-