特定のbatファイルmybatch.bat
はは、それが一目で見ることができるよりも厳しい作業になる可能性が実行されているかどうかの確認。
tasklist /V
内の特定のウィンドウタイトルをお探しだけでなく、wmic process where "name='cmd.exe'" get CommandLine
にCommandLine
プロパティをテストするには、いくつかの想像状況下を失敗することがあります。
第1。あなたは
mybatch.bat
はない呼び出し、別のバッチスクリプト(S)を含むをしていることを確認しmybatch.bat
と
- から他のすべての
title
コマンドを削除mybatch.bat
と
- の先頭に
title ThisIsDistinguishingString
コマンドを追加することができますコマンドtitle
? :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
)
第二:次のように続いてチェックerrorlevel
がfind
commandから返されました。それ以外の場合は、wmic
Windows Management Instrumentation command出力は
wmic process where "name='cmd.exe'" get /value
を助けることができるなら、あなたは、特定の場合
wmic process where "name='cmd.exe'" get CommandLine, ProcessID
wmic
は、いくつかのWin32_Process
class特性、特にCommandLine
を返すことができることを注意、空に狭め、その出力にmybatch.bat
を検出できるチェックプロセスが別のユーザーアカウントで起動されたか、昇格されました(管理者として実行)。
昇順wmic
は、すべてのプロパティを完全に返します。
'tasklist/v'はウィンドウのタイトルを示します。それはウィンドウのタイトルのようです - cmdは実際のタイトルの変更を気にしません。 –