今回は、Windowso10,11のコマンドプロンプトで使えるtimeoutについて解説します。
timeoutコマンドは、バッチ処理の中で一定時間プログラムの実行を一時停止させるために使用するコマンドです。
主に、次の処理に移る前に少し間を空けたい場合や、ユーザーにメッセージを表示してある程度の時間待機させたい場合などに使います。
timeoutコマンドの使い方
timeout /t 秒数
/t: 一時停止する秒数を指定します
3秒間待機させる場合は「/t 3」となります。
コマンドを実行すると、下記の画像のようにカウントダウンのように秒数が減っていきます。


/nobreak オプション
/nobrea ユーザーがキーを押しても中断しないようにします。
/nobreakオプションなしで実行した場合、例えばエンターキーを残り4秒で押すとtimeoutコマンドが途中でとまり、
プロンプトが返ってきます。

/nobreakオプションありで実行した場合は、例えばエンターキーを教えても、カウントダウンされ続けます。

出力メッセージの抑制(〇秒待っています。~~)をしたい場合は、「> nul」をつけます。
> nul を追加することで、timeoutコマンドの実行中のメッセージを非表示にすることができます。

timeoutコマンドを使ったバッチファイルのサンプル
timeoutコマンドを使ったバッチファイルのサンプルです。
for文やif文の中にtimeoutコマンドを使用してみました。
@echo off
setlocal
echo ループを開始します...
for /L %%i in (1,1,5) do (
echo %%i 番目のループです。
if %%i==3 (
echo 特別な処理を実行中...(3秒待機します)
timeout /t 3 /nobreak
) else (
echo 通常の処理...(1秒待機します)
timeout /t 1 /nobreak
)
)
echo ループが終了しました。
endlocal

バッチファイルの解説です。
for /L %%i in (1,1,5): ループ変数 %%i を使って、1から5までループします。
if %%i==3: %%i が3のときに特別な処理を実行します。
timeout /t 3 /nobreak: 特別な処理の場合は、3秒待機します。/nobreak はキー入力による中断を防ぎます。
timeout /t 1 /nobreak: 通常のループでは1秒間待機します。
echo: それぞれのループの状況を表示します。
このバッチファイルでは、5回のループが実行されます。%%i が3のときだけ特別な処理を行い、3秒待機し、他のケースでは1秒間待機する処理を行います。
まとめ
今回はWindows10,11で使えるtimeoutコマンドについて解説しました。