2

タスクマネージャーまたはタスクリストのイメージ名に基づいて、アプリケーションが現在実行されているかどうかを確認しようとしています...例としてfirefox.exeを使用していますが、常に失敗します。目標は、既に実行されている場合は別のスクリプトを起動しないこと、および/または必要なときにタスクを強制終了することです。

これは私の現在のステータススクリプトです:

@echo off
set STATUS=
FOR /F "tokens=*" %%A IN ('tasklist ^| findstr "firefox.exe"') DO SET STATUS=%%A
echo %STATUS%
if [%STATUS%]==[] set STATUS=stopped

echo %STATUS%

常に次の出力が得られます: (常に if ステートメントで失敗します)

firefox.exe                   6216 Console                    1    411,760 K
6216 was unexpected at this time.

これがなぜなのか、またはこれを達成するための別の方法を提案する理由はありますか?

4

4 に答える 4

1

1 つの方法を次に示します。

@echo off
set "prog=firefox.exe"
tasklist /fi "IMAGENAME EQ %prog%"| find /i "%prog%" >nul && (echo %prog% is running) || (echo %prog% is stopped)
于 2013-07-31T01:20:20.410 に答える