重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

定期的にある一つの起動しているアプリを強制終了させるbatファイルを作成したいと思っています。
OSはServer2003です.

tasklist /FI "IMAGENAME eq xxx.EXE"|find "xxx.EXE"

にて値が返された場合はtaskkillコマンドで終了させ
値が無い場合は何もしないと言ったbatファイルを作成
したいのです。出力値をどこかに格納して、空であれば
何もせず、値があればtaskkillを実行してと言った感じにしたいのですが、その部分をどうしていいのか今調べております。何かいいアドバイス等ございましたらよろしくお願いします。不明点があればよろしくお願いします。

A 回答 (2件)

単純に


taskkill /IM xxx.EXE
で良いと思うのですが、コレではダメなのですか。

一応質問文のような手順にするには、
@echo off
SET PID=
for /F "usebackqtokens=2" %%i in (`tasklist /nh /fi "Imagename eq xxx.exe"`) do SET PID=%%i
IF defined PID ( taskkill /PID %PID% )
でいいと思います。
単純なtaskkillの方は、複数の同一EXE名を全て終了させますが、後の方はPIDに指定した1つだけを終了させます。
あるとかないとかそういうメッセージがイヤな場合は
taskkill /IM xxx.exe 2>nul
とすれば、情報メッセージを捨てることができます。
    • good
    • 0

tasklist ... find の実行結果をファイルにリダイレクトしてから、for 文でそのファイルを読み込んで taskkill コマンドを実行するようにしたらいいのでは?



for /? でファイルからデータを取り込むためのオプションなどのヘルプが表示されるはずです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!