概要
PowerShell の Start-Sleep コマンドレットを使えば簡単に sleep はできますが、PowerShell を使わずにコマンドプロンプトで sleep するためのテクニックについて記載しておきます。
方法
方法はいくつかあります。
コマンドはそれぞれ異なりますが、以下の方法により結果として 3 秒間の sleep が実現できます。
(1) 無効なIPアドレスへの ping による sleep
無効なIPアドレスへ ping して sleep します。
-n オプションで再試行回数 1 を指定し、タイムアウト時間を 3000 ms で指定します。
ping 1.2.3.4 -n 1 -W 3000 > nul
(2) localhost への ping 再試行による sleep
ping コマンドは 1 秒で応答することを利用して sleep します。
localhost に対して -n オプションで再試行回数 4 (sleep したい秒数 - 1) を指定します。
ping 127.0.0.1 -n 4 > nul
(3) timeout による sleep
Windows 7 以降であれば timeout コマンドで sleep できます。
引数へ sleep 秒数として 3 を指定します。
timeout 3
(4) choice のタイムアウトによる sleep
choice コマンドはユーザーに選択肢を選んでもらうためのコマンドです。
choice は何も選択せずに一定時間が経過するとタイムアウトを発生させることができるため、このタイムアウトの時間を利用して sleep します。
タイムアウトの時間を指定するため /t オプションへ 3 を指定します。
choice /C YN /D Y /t 3