プロが教えるわが家の防犯対策術!

batファイルをアンダグラウンド実行した時の稼働確認

os:windows xp

aaaaa.batというバッチファイルをstartコマンドや、vbsなどからアンダーグラウンド実行した時、
aaaaa.batが稼働中かもう終了しているのかは、どうやって判断しますか?

aaaaa.bat内になんらかのexeなどが動く時は、そのexeをタスクマネージャで捕捉できなくは無いですが、
dosコマンドベースで作成されたbatが、長時間、あるいはループした状態でバックグラウンド実行され、それを終了させる時などどうすれば良いですか?

A 回答 (5件)

>でも、複数走らせると、どれか分からなくなりそうですね。



おっと、標準のタスクマネージャだと、コマンドラインがわかりませんね。

Sysinternals の Process Explorer を使うとコマンドラインがわかりますので区別できます。
http://technet.microsoft.com/ja-jp/sysinternals/ …

コマンドラインも同じ場合はstarttimeもわかるのでそれでも区別できるかと。
    • good
    • 0
この回答へのお礼

おお!Windows Sysinternals ですか、このサイトは何かと抑えるべき情報が多そうです。
ありがとうございました。

お礼日時:2010/03/06 17:29

>フリーズや異常を感じた時に、それを強制終了させる手段は無いでしょうか?



タスクマネージャで、cmd.exe を探してそれを終了させます。

この回答への補足

なるほど、その手がありますね。
でも、複数走らせると、どれか分からなくなりそうですね。

DOSコマンドで作ったものをバッチ的にいくつか走らせるのは無理がありそうですね。
何か良い方法は無いですか?

補足日時:2010/03/04 22:11
    • good
    • 0

>あらかじめだと、


>例えば、2時間かかるファイルコピーをバックグラウンドで実行させたとして、
>2時間半を設定したが、最初の30分ぐらいで、どうもおかしいとなった場合、
>あと2時間我慢しなくてはならないのですか?

途中で停止できると思いますが・・・あれ?できなかったかな?
そもそも、思考錯誤の段階でコピー時間をある程度予測してからタスクに入れるものですよ。
1回限りのものはタスクで実行せずにその場でやってはいかがでしょうか。

この回答への補足

バックグラウンドで起動する時に、処理を待つオプションにしてないから停止できないのかもしれません。

補足日時:2010/03/04 22:08
    • good
    • 1

タスクで実行してはいかがでしょうか。


プロパティの[設定]タブに[タスクの継続時間を指定する]の項目があります。
既定は72時間0分になっているので、これを変更するのが簡単で確実だと思います。

この回答への補足

c:¥windows¥tasksにスケジュールを登録して実行させるのですか?
そして、一旦実行させた後、
実行中に異常があれば[タスクの継続時間を指定する]で時間を変更ですか?
それともあらかじめ時間を短く設定するのでしょうか?

あらかじめだと、
例えば、2時間かかるファイルコピーをバックグラウンドで実行させたとして、
2時間半を設定したが、最初の30分ぐらいで、どうもおかしいとなった場合、
あと2時間我慢しなくてはならないのですか?

補足日時:2010/03/02 07:31
    • good
    • 0

アンダーグランドで実行する方法は知りませんが


バックグランドで実行するなら…

起動させているときに一時ファイルを作成して、終了時にその一時ファイルを削除するようにすれば
一時ファイルの有無で判断ができます

この回答への補足

ありがとうございます。

一時ファイルやログ吐いたりするのも、判断の手段としてありですが、フリーズや異常を感じた時に、それを強制終了させる手段は無いでしょうか?

補足日時:2010/03/02 02:13
    • good
    • 0

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