Как проверить, запущен ли процесс через пакетный скрипт в Windows Server 2003 - PullRequest
2 голосов
/ 10 августа 2011

Я хочу использовать командный файл, чтобы проверить, запущен ли процесс в Windows Server 2003, а затем запустить новый экземпляр, если нет.

Это тот же вопрос, что и

Как проверить, запущен ли процесс через пакетный скрипт

, но для Windows Server 2003. Ответ немного другой, однако мне не хватает представителя, чтобы ответить на него, поэтому я опубликую его здесь для будущих поисков.

.. дамба. Мне нужно подождать 8 часов. Ответ скоро будет.

1 Ответ

0 голосов
/ 10 августа 2011

Ответ, приведенный в ссылке, работает для XP, однако в Windows Server 2003 строка

 tasklist /FI "IMAGENAME eq notepad.exe" /FO CSV > search.log

возвращает «INFO: не выполняется ни одной задачи, соответствующей указанным критериям». который затем читается при запуске процесса.

У меня нет опыта создания пакетных сценариев, поэтому мое решение состоит в том, чтобы затем искать имя процесса в search.log и закачивать результаты в другой файл и искать его для любого вывода.

tasklist /FI "IMAGENAME eq notepad.exe" /FO CSV > search.log

FINDSTR notepad.exe search.log > found.log

FOR /F %%A IN (found.log) DO IF %%~zA EQU 0 GOTO end

start notepad.exe

:end

del search.log
del found.log

Надеюсь, это поможет кому-то еще, если я получу достаточно повторений, я добавлю его к ответам на оригинальный вопрос.

Ben

...