mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Windows - バッチファイルでのウェイト処理!

[ pc_tips ] [ Windows ]

こんばんは。

今日はWindowsのバッチ処理(バッチファイルの実行)で一定時間ウェイト(待機)させる方法についてです。

例えば、ある処理をバッチファイルで順次実行させる際、「1つ前に起動をかけた処理が完全に起動してから次の処理を実行させたい」というようなケース。(起動をかけてから完全に起動するおおよその時間が把握できる場合のみですが)

調査の結果、以下の2つの方法で実現可能のようです。

  • 「 ping 」コマンドのタイムアウトを使用する方法
  • 「 WSH 」(Windows Script Host)を使用する方法

2の方法はバッチファイル以外にウェイト処理を行うコーディングを記述したWSHファイルを別途用意する必要があります。

今回は1の方法を試してみました。

実行方法

※今回試行した環境は「 WindowsXP(SP3) 」です。 実際にはバッチファイル内のウェイト処理を行いたい位置に以下のような記述をするだけです。(約5秒間ウェイトする例)

1
ping 0.0.0.1 -w 5000 -n 1

これは、

  • 「 0.0.0.1 」は存在しないIPアドレスを指定する。 (ただし、「 0.0.0.0 」だと「 Destination specified is invalid. 」と即エラーが返ってくるので注意!)
  • 「 -w 5000 」はタイムアウトするミリ秒を指定する。
  • 「 -n 1 」はpingする回数を指定する。

という意味で「 5000ミリ秒 × 1回 = 5秒 」(+アルファ)ウェイトします。 逆に、1000ミリ秒(1秒)でタイムアウトするpingを5回実行させると、若干(+アルファ部分の5倍)長くなるので要注意です。


以上、正確な秒数ではありませんが使えると思います。

では。

Comments