batでsleepコマンドを使用して、ミリ秒単位で処理を止めたい時もあると思います。
今回はsleepコマンドを使用して、batの処理を数秒止めて再開させたいと思います。
またsleepコマンドを使用しても想定通りの動きをしない場合の対処法も教えます。
windowsのプロンプトで使用できるbatやpythonやphpを使用して、業務効率化やWebサイトを作成しております。javaやシェルスクリプトなど、様々なプログラミングを行った実績ありの筆者です。
bat(バッチ)でsleepコマンドのやり方

batでのsleepコマンドは処理を決めた秒数だけ一時停止する効果があります。
基礎構文を下に教示します。
sleep 秒数
これを入れるだけでbat処理を秒数だけ一時停止する事が可能です。
bat(バッチ)のsleepコマンドと同じ動きをするコマンド
しかしsleepコマンドはwindowsの環境などで動かない場合が存在します。
そういった場合には「timeout」コマンドを使用すれば同じ効果が得られます。
timeout /t 秒数
timeoutコマンドのその他のオプションなどは以下の記事でまとめています。

bat(バッチ)でsleepコマンドが動かない時の対処法

しかしsleepコマンドもtimeoutコマンドもwindowsの環境などで動かない場合が存在します。
そんな時の対処法を教えます。
「powershell sleep」コマンドを使用すれば可能です。
powershell sleep 秒数
これなら確実に動きますので、「powershell sleep」のコマンドを推奨します。
bat(バッチ)のsleepでミリ秒を指定する方法
batのsleepでミリ秒を指定したい時もあると思います。
そんな時は以下の様に記述してください。
powershell sleep 0.001
これでミリ秒単位でbat処理を一時停止する事が可能です。
実践:batのsleepで処理を止める

では実際にbatのsleepを使用してみます。
sleepを使用したbatファイル説明
@echo off
echo ①この行が最初の行です!
powershell sleep 5
echo ②この行が最後の行です!
pause

最初の文字列を表示してから「powershell speep」コマンドで5秒待ってから最終行の文字列を表示します。


sleepを使用したbatファイルを実行した結果
ではこのbatファイルを実行してみます。

①この行が最初の行です!
最初の文字列が表示されます。
5秒間待ちが発生します。
①この行が最初の行です!
②この行が最後の行です!
続行するには何かキーを押してください . . .
5秒後に最後の文字列が表示されました。
まとめ:bat(バッチ)でsleepコマンドのやり方

batでsleepを使用すれば処理を指定した時間だけ止める事ができる。
sleepのコマンドは以下です。
sleep 秒数
その他のコマンドでsleepと同じ効果のあるコマンドはtimeoutで構文は以下です。
timeout /t 秒数
環境によってはsleepもtimeoutも動かない時があるので、powershellコマンドを使用するのが推奨です。
powershell sleep 秒数
秒数の箇所はミリ秒単位でも指定可能。1ミリ秒を指定する時のやり方です。
powershell sleep 0.001