0

Я разместил это раньше, но в то время казалось, что он работает, но теперь я вижу, что это не так.пакетный процесс tasklist check not working

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

@echo off 
tasklist /FI "IMAGENAME eq GEIndexParser.exe" | find /I "GEIndexParser.exe"> 
nul &&(
echo PROCESS GEIndexParser.exe IS ALREADY RUNNING! 
)||(
echo GEIndexParser.exe IS NOT RUNNING! STARTING THE NEW PROCESS! 
cmd /c start "ETPARSER" "C:\Users\me\Documents\ 
Visual Studio 2010\Projects\Projects2013\ 
GEIndexParser\bin\Debug\GEIndexParser.exe" 
) 

Может ли кто-нибудь увидеть, что в этом плохого?

Кстати, я пытаюсь запустить его на компьютере с сервером Windows 2008, и он запускается, когда я настраиваю задание в запланированных задачах, но не видит, что существующий процесс работает и продолжает его выполнять. Это приводит к множеству экземпляров процесса.

Благодаря комментарии предложение о синтаксисе я изменил его немного

tasklist /FI "IMAGENAME eq GEIndexParser.exe" | find /I "GEIndexParser.exe">nul &&(
echo PROCESS GEIndexParser.exe IS ALREADY RUNNING!) 
pause 
|| 
(
echo GEIndexParser.exe IS NOT RUNNING! STARTING THE NEW PROCESS! 
cmd /c start "ETPARSER" "C:\Users\me\Documents\ 
Visual Studio2010\Projects\Projects2013\GEIndexParser\bin\Debug\GEIndexParser.exe" 
) 

, кажется, работает.

+2

Пожалуйста, удалите конец строки после TaskList/FI "ImageName эк GEIndexParser.exe" | find/I "GEIndexParser.exe"> и сообщите, работает ли он. –

+0

Я не уверен, что это было именно с тех пор, как я добавил endofline при создании сообщения, но удалил любые дополнительные пробелы и теперь кажется, что все в порядке. Спасибо – vbNewbie

+0

ХОТИТЕ ДОБАВИТЬ это также; полезен для меня; изменение названия окна командной строки ---> TITLE новое название – vbNewbie

ответ

0

Таким образом, окончательный код будет:

@echo off 
tasklist /FI "IMAGENAME eq GEIndexParser.exe" | find /I "GEIndexParser.exe">nul &&(
    echo PROCESS GEIndexParser.exe IS ALREADY RUNNING! 
)||(
    echo GEIndexParser.exe IS NOT RUNNING! STARTING THE NEW PROCESS! 
    cmd /c start "ETPARSER" "C:\Users\me\Documents\Visual Studio2010\Projects\Projects2013\GEIndexParser\bin\Debug\GEIndexParser.exe" 
)