バッチ処理中のコマンドの自動強制終了

このQ&Aのポイント
  • Windows7で、バッチファイルから複数のコマンドを実行しています。あるコマンドの実行が一定時間以上になったらそのコマンドを強制終了して、次のコマンドに移る方法を教えてください。
  • バッチファイルから複数のコマンドを実行していますが、特定のコマンドが実行時間が長くなる場合に自動的に強制終了して次のコマンドに移る方法を知りたいです。
  • Windows7でバッチ処理中にコマンドの実行時間を監視し、特定のコマンドが一定時間以上になったら自動的に強制終了して次のコマンドに移る方法を教えてください。
回答を見る
  • ベストアンサー

バッチ処理中のコマンドの自動強制終了

Windows7で、バッチファイルから複数のコマンドを実行しています。 あるコマンドの実行が一定時間以上になったらそのコマンドを強制終了して、次のコマンドに移るようにする方法を教えてください。 例えば、下記のバッチファイルがあるとします。 バッチファイル開始 programA programB programC バッチファイル終了 以上を実行した際に、programBの実行時間が1分以上になったらprogramBを自動的に強制終了して 次のprogramCを実行する必要があります。 また、ユーザーが起動するプログラムは、上記のバッチプログラムだけとします。 また、ダイアログボックスやメッセージwindow等のGUIは表示したくないです。 このようなことを実現する方法を教えてください。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.2

>また、ユーザーが起動するプログラムは、上記のバッチプログラムだけとします。 この文章を文字通りの意味に取れば不可能です。 上記のバッチファイルにはそういう処理は書かれてないので。 上記のバッチファイルに処理を書き加えてそういう動作をさせることは可能です。 監視のための別のバッチファイルを内部で起動する必要がありますが。 (echo timeout /t 60 echo taskill /f /im programB.exe echo exit) >temp.bat programA start /min temp.bat programB programC del temp.bat

takedon3
質問者

お礼

回答、ありがとうございます。 まさに、やりたかった事です。非常に助かりました。

takedon3
質問者

補足

質問者です。 OKWaveで入力可能なところがここしかないので、ここにコメントさせてください。 上記回答の「taskill」は、「taskkill」のタイプミスだと思われます。 後で閲覧する人のためにコメントしておきます。 (No2さんの揚げ足を取ろうとしているのではないので、、、、)

その他の回答 (1)

  • f272
  • ベストアンサー率46% (8005/17110)
回答No.1

「ユーザーが起動するプログラムは、上記のバッチプログラムだけ」というのなら,programBの実行時間を外から監視できないということなんので,programBの中で制御してください。つまりprogramBが自分で時間を測り,1分たったら終了するようにプログラムを修正するわけです。

takedon3
質問者

お礼

ご回答、ありがとうございました。 今回やりたかったのは、programBが完全に暴走状態に陥ったときの対処法でした。 説明が不足して、申し訳ありませんでした。

関連するQ&A

  • コマンドプロンプトでプログラムを順番に自動実行したいです

    コマンドプロンプトで次のような動作をするバッチファイルを作りたいです。 1.プログラムを実行する 2.2時間後待つ 3.1のプログラムを終了する 簡単なプログラム例をお示しいただければ幸いです。

  • Win7のコマンドプロンプトでバッチファイル自動終了は?

    Win7のコマンドプロンプトでバッチファイル自動終了は? Windows7上でバッチファイルを実行させます。 このとき、バッチファイルの中身は、Skypeの起動です。 Skype起動はするのですが、コマンドプロンプトの画面は開いたままです。 そして、Skypeを終了(システムトレイから完全終了)させると、コマンドプロンプトも閉じます。 Skype起動中にコマンドプロンプトを手動で終了させても大丈夫なのですが、いちいち面倒です。 なにかいい手はありませんか? ちなみに、なぜ、バッチファイルでSkypeを起動させるかというと、USBメモリーとかでSkypeを持ち運ぶためです。 バッチファイルの中身です。 Skype.exe /datapath:"DataFile" /removable バッチファイルは「Skype.exe」と同じディレクトリにあります。 ショートカットで作れば問題ないのですが、そうすると、USBのドライブレターが変わった時に対応できなくなるので、相対ディレクトリ指定のできるバッチファイルで起動をさせています。

  • バッチ処理時のコマンドウィンドウについて

    XPで、バッチファイル(.bat)作成して実行させると、コマンドウインドウが現れ、各コマンドが順次実行されます。バッチ処理終了後にコマンドウインドウが自動的にクローズされますが、これをそのまま保持することはできないのでしょうか?または、ウインドウの表示内容をファイルに落としておくということはできないのでしょうか? よろしくお願いします。

  • バッチファイルでプログラムを強制終了って・・・

    実行中のプログラムを強制終了させてしまうバッチファイルって 果たして作ることが可能なものでしょうか? アドバイスよろしくお願い致します。 対象環境はNT4サーバです。 やりたいことのイメージとしては、例えば、メモ帳でテキストを書き、そして 未保存状態で動かしっぱなしのところを、バッチで強制終了させてしまう、 そんな感じです。当然未保存云々と聞かれますけれども保存せずに強制終了!です。 (もしくは、タスクマネージャを起動し、そのアプリケーションタスクを 終了させる、と表現したほうが良いのでしょうか) ・・・果たしてそんなことってできるのでしょうか? とくにネットワークの処理は考え無く、単にそのNTマシン自身の話なのです。 よろしくお願いします。

  • バッチでの強制終了の方法

    バッチファイルであるプログラムを起動させ、そのバッチ内での強制終了を考えております。 そのプログラム(a.exe)は動作後、「OKボタン」を押さないと終了しない仕様になっています。仕様の変更は不可です。 まずは「OKボタン」を押すために、「ENTER」キーを押すか、 「alt」+「F4」キーを押すようなイメージのバッチ例を探してみましたが、これは難しいようでした。 そこで下のようなバッチを書きましたが C:\a.exe taskkill /F /IF a.exe 「エラー:プロセス ”a.exe” が見つかりませんでした。」 となってしまいました。 c:\a.exe のみをバッチで起動し、コマンドラインで c:\taskkill /F /IF a.exe とすると成功します。 何か他の設定が必要なのでしょうか?

  • バッチ終了時にDOS窓を閉じるコマンド

    自作バッチについて質問があるのですが、 バッチ終了時にDOSプロンプトを自動的に閉じる方法を教えて下さい。 以下の方法は知っているのですが↓ ------------------------------------------------------------ バッチのプロパティ画面の「プログラム終了時にウィンドウを閉じる」を チェックする ------------------------------------------------------------ 上記のようなやり方ではなく、バッチファイルの中に直接コマンドを書いて 設定する方法を教えて下さい。

  • バッチ処理のコマンドについて

    非常にくだらない質問で恐縮なのですが、 ログ見ても無いようなので質問させてください。 バッチファイルを実行した最後に バッチファイルが自分自信を削除するコマンドって 何でしたっけ? Win98を使用しています。

  • DOSコマンドでの強制終了

    batファイルにて複数コマンドを実施していますが、 実行中に 右上のxボタン(画面閉じる)にて強制終了できない、またはxボタンにて閉じる場合は応答要求をくるようにし強制終了を簡単に使用できないようにしたいのですが、いい方法があれば教えて下さい。

  • VC6.0でクリック時にバッチファイルを実行し、終了したか知りたい

    VC6.0でクリック時にバッチファイルを実行し、終了したか知りたい 開発環境:VC6.0 OS:windowsXP HOME ダイアログのonclick時に バッチファイルを実行したいと思います さらに終了後に次の処理を行うような手順を検討しています バッチファイルを実行させる方法は WinExec(_T("abc.bat"),SW_SHOWNORMAL); のような方法で可能でしたが、 終了する前に次の処理に行ってしまいます。 終了を知る方法はありますでしょうか? よろしくお願いします

  • バッチファイルが不正終了してしまう行をつきとめたい

    長いバッチファイルを実行中、途中で不正終了してしまう場合に、そのバッチファイルの何行目を実行した時に不正終了したのかをつきとめたいのですが、何か方法はあるでしょうか。 又は、現在バッチファイルの何行目であるかを表示するコマンド等無いでしょうか。 ご存知の方がおられましたら、宜しくお願い致します。

専門家に質問してみよう