- ベストアンサー
batファイルをアンダグラウンド実行した時の稼働確認
batファイルをアンダグラウンド実行した時の稼働確認 os:windows xp aaaaa.batというバッチファイルをstartコマンドや、vbsなどからアンダーグラウンド実行した時、 aaaaa.batが稼働中かもう終了しているのかは、どうやって判断しますか? aaaaa.bat内になんらかのexeなどが動く時は、そのexeをタスクマネージャで捕捉できなくは無いですが、 dosコマンドベースで作成されたbatが、長時間、あるいはループした状態でバックグラウンド実行され、それを終了させる時などどうすれば良いですか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>でも、複数走らせると、どれか分からなくなりそうですね。 おっと、標準のタスクマネージャだと、コマンドラインがわかりませんね。 Sysinternals の Process Explorer を使うとコマンドラインがわかりますので区別できます。 http://technet.microsoft.com/ja-jp/sysinternals/default.aspx コマンドラインも同じ場合はstarttimeもわかるのでそれでも区別できるかと。
その他の回答 (4)
- notnot
- ベストアンサー率47% (4900/10358)
>フリーズや異常を感じた時に、それを強制終了させる手段は無いでしょうか? タスクマネージャで、cmd.exe を探してそれを終了させます。
補足
なるほど、その手がありますね。 でも、複数走らせると、どれか分からなくなりそうですね。 DOSコマンドで作ったものをバッチ的にいくつか走らせるのは無理がありそうですね。 何か良い方法は無いですか?
- junkUser
- ベストアンサー率56% (218/384)
>あらかじめだと、 >例えば、2時間かかるファイルコピーをバックグラウンドで実行させたとして、 >2時間半を設定したが、最初の30分ぐらいで、どうもおかしいとなった場合、 >あと2時間我慢しなくてはならないのですか? 途中で停止できると思いますが・・・あれ?できなかったかな? そもそも、思考錯誤の段階でコピー時間をある程度予測してからタスクに入れるものですよ。 1回限りのものはタスクで実行せずにその場でやってはいかがでしょうか。
補足
バックグラウンドで起動する時に、処理を待つオプションにしてないから停止できないのかもしれません。
- junkUser
- ベストアンサー率56% (218/384)
タスクで実行してはいかがでしょうか。 プロパティの[設定]タブに[タスクの継続時間を指定する]の項目があります。 既定は72時間0分になっているので、これを変更するのが簡単で確実だと思います。
補足
c:¥windows¥tasksにスケジュールを登録して実行させるのですか? そして、一旦実行させた後、 実行中に異常があれば[タスクの継続時間を指定する]で時間を変更ですか? それともあらかじめ時間を短く設定するのでしょうか? あらかじめだと、 例えば、2時間かかるファイルコピーをバックグラウンドで実行させたとして、 2時間半を設定したが、最初の30分ぐらいで、どうもおかしいとなった場合、 あと2時間我慢しなくてはならないのですか?
- Cupper
- ベストアンサー率32% (2123/6444)
アンダーグランドで実行する方法は知りませんが バックグランドで実行するなら… 起動させているときに一時ファイルを作成して、終了時にその一時ファイルを削除するようにすれば 一時ファイルの有無で判断ができます
補足
ありがとうございます。 一時ファイルやログ吐いたりするのも、判断の手段としてありですが、フリーズや異常を感じた時に、それを強制終了させる手段は無いでしょうか?
お礼
おお!Windows Sysinternals ですか、このサイトは何かと抑えるべき情報が多そうです。 ありがとうございました。