2012-06-24 105 views
1

無論何時「My Own Program.exe」關閉,我都需要一個批處理文件。我需要知道一個進程是否正在運行

我已經試過這樣:

@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 

它工作正常的單個字的過程,但如果它是3個字(如「我自己的Program.exe」)。

任何幫助,將不勝感激。

回答

0
@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 
) 

我不能完全肯定這theese對應於WMIC查詢任務列表和條件IMAGENAME可以更改:

Caption 
Description 
Name 
相關問題