【bat】処理を遅延実行する方法(timeout / ping の活用)

【bat】処理を遅延実行する方法(timeout / ping の活用) bat

バッチファイルで複数の処理を順番に実行するとき、次の処理を数秒待ってから実行したいケースがあります。Windows では timeout コマンドや ping コマンドを利用して簡単に遅延処理を実現できます。本記事ではそれぞれの方法と特徴を解説します。

timeout コマンドを使う方法

Windows Vista 以降で利用できる timeout コマンドを使うと、指定した秒数だけ待機できます。

@echo off
echo 処理1を実行中…
rem 5秒待機
timeout /t 5 /nobreak >nul
echo 処理2を実行中…

/t は待機秒数を指定し、/nobreak を付けるとキー入力で待機が中断されるのを防げます。>nul でメッセージ出力を抑制すると、余計な表示がなくなります。

ping コマンドを使う方法

古い環境(Windows XP など)では timeout が使えないため、代替として ping を利用する方法があります。存在しないアドレスに対して一定回数 ping を送ることで時間を稼ぎます。

@echo off
echo 処理1を実行中…
rem 5秒待機(127.0.0.1 へ 6 回 ping、デフォルト1回=約1秒)
ping 127.0.0.1 -n 6 >nul
echo 処理2を実行中…

-n で回数を指定し、「回数 – 1」が待機秒数に相当します。正確な秒数を求める用途には不向きですが、手軽にディレイを入れることができます。

どちらを選ぶべきか

  • Windows Vista 以降 → timeout を推奨(正確で読みやすい)
  • Windows XP や制限環境 → ping を代替手段として利用可能

まとめ

バッチファイルで処理を遅延させたいときは、timeout が使える環境ならそれがベストです。レガシー環境では ping を用いた方法も活用できます。いずれの方法も簡単に組み込めるため、処理間の間隔を調整したいときに役立ちます。