檢查一個特定的bat文件mybatch.bat
是否正在運行可能是比它看起來更加棘手的任務。
尋找在tasklist /V
特定的窗口標題,以及在wmic process where "name='cmd.exe'" get CommandLine
測試CommandLine
財產可能會失敗下的一些想象的情況。
1st。你能
- 在
mybatch.bat
和
- 刪除所有其他
title
命令開始從mybatch.bat
和
- 添加
title ThisIsDistinguishingString
命令確保mybatch.bat
不包含調用另一個批處理腳本(S)一個title
命令?
然後檢查errorlevel
從find
command返回如下:
:testMybatch
tasklist /V /FI "imagename eq cmd.exe" | find "ThisIsDistinguishingString" > nul
if errorlevel 1 (
rem echo mybatch.bat batch not found
) else (
echo mybatch.bat is running %date% %time%
timeout /T 10 /NOBREAK >NUL 2>&1
goto :testMybatch
)
第二。否則,檢查是否wmic
Windows Management Instrumentation command輸出可以幫助
wmic process where "name='cmd.exe'" get /value
然後,你可以在它的輸出縮小到
檢測
mybatch.bat
wmic process where "name='cmd.exe'" get CommandLine, ProcessID
注意wmic
可如果一個特定的返回一些Win32_Process
class性能,尤其是CommandLine
,空進程在另一個用戶帳戶下啓動或提升(以管理員身份運行)。
高架wmic
返回全部屬性。
'tasklist/v'給出窗口標題。就好像它是窗口標題 - cmd不會改變實際標題。 –