• ベストアンサー

定期的に起動アプリを終了させるbatファイル

定期的にある一つの起動しているアプリを強制終了させるbatファイルを作成したいと思っています。 OSはServer2003です. tasklist /FI "IMAGENAME eq xxx.EXE"|find "xxx.EXE" にて値が返された場合はtaskkillコマンドで終了させ 値が無い場合は何もしないと言ったbatファイルを作成 したいのです。出力値をどこかに格納して、空であれば 何もせず、値があればtaskkillを実行してと言った感じにしたいのですが、その部分をどうしていいのか今調べております。何かいいアドバイス等ございましたらよろしくお願いします。不明点があればよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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 とすれば、情報メッセージを捨てることができます。

その他の回答 (1)

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

tasklist ... find の実行結果をファイルにリダイレクトしてから、for 文でそのファイルを読み込んで taskkill コマンドを実行するようにしたらいいのでは? for /? でファイルからデータを取り込むためのオプションなどのヘルプが表示されるはずです。

関連するQ&A

  • batでchromeを起動・終了させたい

    batでchromeを起動終了させたいのですが、 start C:\Program Files (x86)\Google\Chrome\Application\chrome.exe を実行後 batが止まってしまいます。 このまま(もしくはchrome.exeをtaskkill)で次の処理にすすめたいのですが、いい方法ありませんか?

  • DOSコマンドで結果として出力される文字列を変数に格納したい

    DOSコマンドで、あるソフト(タスク)が実行されていればプログラムAを、そうでなければプログラムBを実行するバッチを組んでいます。タスクの一覧はtasklistで取得できることが分かり、対象となるタスクおみを抽出する方法も分かりました。しかし、この後どうすれば良いかが分かりません。対象となるタスクが存在した場合としない場合では出力される文字列が違います。この文字列を比較することで分岐が実現できると思ったのですが、それには文字列を変数に格納する必要があります。以下のように記述し、うまくいくことを期待したのですが、駄目でした。 set STATUS=tasklist /fi "Imagename eq タスク名" tasklist /fi "Imagename eq タスク名"の部分が関数であれば、戻り値があってそれを格納することができるのではないかと思ったのですが、できませんでした。このケースに限ったことではありませんが、各コマンドの実行結果として出力される文字列を変数に格納するにはどうすれば良いのでしょうか?VBSやWSHなどではなく、.bat形式の場合でお願いします。

  • BATファイル起動について

    お世話になっております。 javaのclassを実行する 以下の処理を行うbatファイルを作成したところ (ディレクトリ移動→classpathの設定→javaコマンド) cmd.exeよりこのbatファイルを実行すると 正常に動作してくれるのですが batファイルをダブルクリックすると javaを正常に実行しません。 errorや例外も特に発生していません。 batファイルを cmd.exeからの実行するのと ダブルクリックで実行するのには 何か違いがあるのでしょうか? よろしくお願いします。

  • コマンドブロンプトでexe実行状況を調べたい。

    Windowsのコマンドブロンプトで、 現在のディレクトリにある。 FB.exeという実行ファイルが、 実行されているかを調べたいです。 たとえば、 tasklist /FI "IMAGENAME eq FB.exe" とすると、FB.exeが実行されているかは調べられるのですが、   他のディレクトリにある、FB.exeが実行されている場合、 その区別ができません。   現在のディレクトリにある。 FB.exeという実行ファイルが、 実行されているかを調べる方法はございますでしょうか?

  • batファイルからアプリケーションを終了させるには

    現在、USBフラッシュメモリから複数のアプリケーションを実行させて使用しようと考えています。 そのとき、USBフラッシュメモリを抜くためにアプリケーションを一つ一つ閉じる手間を省くために、batファイルを作成しようとしているのですが、batファイルからアプリケーションを終了させる方法がわかりません。 回答をよろしくお願いします。

  • batファイルの作成方法について

    batファイルの作成方法について 開いてるPPTファイルを終了して(dkill.exeにて) (1) C:\dkill.exe powerpnt.exe フォルダ内のPPTファイルを全削除して (2) del /f /q C:\test\*.ppt PCをシャットダウン (3) %windir%\system32\shutdown.exe したいのですが、batファイルを作って(1)(2)(3)を並べて実行すると 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」となって (2)ファイル削除が実行できません。 それぞれ別々に実行すれば問題なく実行できます。 おそらく、(1)の処理が終了しない状態で、(2)の削除が実行できないと思うのですが・・・ この3つの処理をひとつのbatファイルで実行するにはどうしたらよいでしょうか? 初心者なのでわかりやすい回答をお願いしますm(__)m

  • コマンドプロンプトについて

    バッチファイルで自動でエクセル起動して何秒後に終了、次のファイル起動・・・・ としたいのですがわかりません。 宜しくお願い致します。 @echo off "C:\Program Files (x86)\Microsoft Office\OFFICE11\excel.exe" "d:\2.xls" timer 10 SET PID= for /F "usebackqtokens=2" %%i in (`tasklist /nh /fi "Imagename eq excel.exe"`) do SET PID=%%i IF defined PID ( taskkill /PID %PID% ) "C:\Program Files (x86)\Microsoft Office\OFFICE11\excel.exe" "d:\3.xls" これをXPとWIN7で動かしたい。

  • Windows8.1 プロセスを終了させるコマンド

    windows8.1で、特定プロセスを終了させるコマンドを教えてください。 タスクマネージャーを都度々開かず、 Batch Fileで終了させたいです。(以下のコマンドを使い、プロセス名やID指定しても、反映されません) Windowsで、プロセスを終了するコマンド taskkill Windowsで、プロセス一覧を見るコマンド tasklist 具体的な使用法とオプション taskkillコマンドのオプション:  /im ・・・プロセス名を指定  /pid ・・・プロセスIDを指定  /f  ・・・強制終了 IE(Internet Explorer)を終了したい場合: C:\> taskkill /im iexplore.exe /f プロセスID(1234)を終了したい場合: C:\> taskkill /pid 1234 /f 例) [D:\0\notepad.exeを終了させるコマンド]は、どの様に記述すれば反映されますか?

  • *.bat ファイルの作り方

    初歩的な質問ですが、よろしくお願いします。 例えば、EXCELを起動するときに、 スタート→すべてのプログラム→EXCEL とたどっています。 これを変更して、batファイルを作成して起動したいと思っています。 batファイルを作成して、以下のように編集しても起動しません。 C:\Program Files\Microsoft Office\Office10\EXCEL.EXE どのように書けば良いのか、分かる方よろしくお願いします。

  • batよりjava起動

    お世話になっております。 javaのclassを実行する 以下の処理を行うbatファイルを作成したところ (ディレクトリ移動→classpathの設定→javaコマンド) cmd.exeよりこのbatファイルを実行すると 正常に動作してくれるのですが batファイルをダブルクリックすると javaを正常に実行しません。 errorや例外も特に発生していません。 batファイルを cmd.exeからの実行するのと ダブルクリックで実行するのには 何か違いがあるのでしょうか? 最終的な目的はタスクにこのbatを登録し 指定した時間に定期的に実行する事なのですが、 タスクにbatを登録して実行した場合 batをダブルクリックした時と同様の現象になり 正常に動作しませんでした。 原因をご存知の方がいらっしゃいましたら 教えて頂けないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java