前提・実現したいこと
for /F "usebackq tokens=2" %a in (tasklist /fi "IMAGENAME eq AA*" ^| findstr "[0-9]"
) do (taskkill /f /PID %a)
上記のコマンドを使ってコマンドプロンプトからAAが含まれるアプリケーションを
taskkillしています。ただ上記のコマンドだと対象のアプリケーションが立ち上がっている場合でも、そうでない場合でも動いてしまいます。
defined等を使って、対象のアプリケーションが立ち上がっている場合のみtaskkillを
行いたいです。立ち上がっていない場合はメッセージを出したいです。
そこでこのように書きましたが、ifの使い方がおかしいとエラーが出ます。
for /F "usebackq tokens=2" %a in (tasklist /fi "IMAGENAME eq AA*" ^| findstr "[0-9]"
) if defined %a% ( do (taskkill /f /PID %a)) else ( echo AA*.EXE は立ち上がっていません。)
defineの使い方がおかしいのでしょうか。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/06 14:28
2018/11/06 14:45
2018/11/06 15:17