underworld777 @Wiki
DOS バッチでスリープ(sleep)させるには
最終更新:
underworld777
-
view
DOSのコマンドシェルでは一定時間だけ処理を一時停止する素直な方法がありません。 キーワード:DOS,バッチ,スリープ,コマンドライン,待ち,待つ
ここでは3つの方法を紹介します。
ここでは3つの方法を紹介します。
1.sleepコマンドを導入する
unix系OSで提供されるsleepコマンドのクローンが公開されています。
これを導入し、バッチファイル内から外部コマンド呼び出しによって一定時間の一時停止を実現します。
ネット内でsleepコマンドを検索するとすぐに見つかるでしょう。
素直かつ一番理想的な方法ですが、デメリットは外部コマンドを導入するという手間がかかる点でしょう。
unix系OSで提供されるsleepコマンドのクローンが公開されています。
これを導入し、バッチファイル内から外部コマンド呼び出しによって一定時間の一時停止を実現します。
ネット内でsleepコマンドを検索するとすぐに見つかるでしょう。
素直かつ一番理想的な方法ですが、デメリットは外部コマンドを導入するという手間がかかる点でしょう。
2.pingを連続回数発行して実現する
ping localhost -n 10
上記のコマンドで10秒程度のsleepが実現できます。
pingコマンドが約1秒間隔で実行されるためです。ただ、間隔が1秒未満という仕様なので、
10秒のときは、上記の数を11とか12とかで指定してあげるとよいでしょう。
お手軽ですが、短時間の場合も、長時間の場合も、精度を出しにくいです。
ping localhost -n 10
上記のコマンドで10秒程度のsleepが実現できます。
pingコマンドが約1秒間隔で実行されるためです。ただ、間隔が1秒未満という仕様なので、
10秒のときは、上記の数を11とか12とかで指定してあげるとよいでしょう。
お手軽ですが、短時間の場合も、長時間の場合も、精度を出しにくいです。
3.pingをネットワーク上で存在しないアドレスに発行してタイムアウトさせる
ping -w 10000 -n 1 192.0.0.0
上記のコマンドは、192.0.0.0という存在しないアドレスに1回pingを発行して、
10秒間(10000ミリ秒)だけpingレスポンスを待つ、というものです。
精度もあるし、お手軽ですが、存在しないアドレスはネットワーク環境によって異なるので、
環境に合わせてアドレスを変更して使う必要があります。
また、アドレスはホスト名で指定してはいけません。DNSへの問い合わせがミスするので、
すぐに実行が終了してしまい、思ったような動作になりません。
ping -w 10000 -n 1 192.0.0.0
上記のコマンドは、192.0.0.0という存在しないアドレスに1回pingを発行して、
10秒間(10000ミリ秒)だけpingレスポンスを待つ、というものです。
精度もあるし、お手軽ですが、存在しないアドレスはネットワーク環境によって異なるので、
環境に合わせてアドレスを変更して使う必要があります。
また、アドレスはホスト名で指定してはいけません。DNSへの問い合わせがミスするので、
すぐに実行が終了してしまい、思ったような動作になりません。
4.WSHを利用する。
とりあえず他のページに詳細まかせます。
とりあえず他のページに詳細まかせます。