NUL | find /I /N "MyOwnProgram.exe">NUL if"> NUL | find /I /N "MyOwnProgram.exe">NUL if"> NUL | find /I /N "MyOwnProgram.exe">NUL if" />

Ik moet weten of een proces draait of niet

Ik heb een batchbestand nodig om door te gaan wanneer "My Own Program.exe" wordt afgesloten.

Ik heb dit geprobeerd:

@echo off  
:loop  
tasklist /FI "IMAGENAME eq MyOwnProgram.exe" 2>NUL | find /I /N "MyOwnProgram.exe">NUL  
if "%ERRORLEVEL%"=="1" goto done
goto loop  
:done

Het werkt prima voor enkel woord-processen, maar niet als het 3 woorden waren (zoals "My Own Program.exe").

Alle hulp wordt op prijs gesteld.

1

1 antwoord

@echo off
set /a errorlevel=0
wmic process where (Name ="My Own Program.exe")  get  ProcessId | more +1  | findstr "[1234567890]"
if %errorlevel% EQU 1 (
  echo not running
) else (
   echo running
)

Ik ben niet helemaal zeker welke van deze overeenkomt met IMAGENAME in takenlijst en voorwaarde in wmic query kan worden gewijzigd:

Caption
Description
Name 
0
toegevoegd