(1) バッチ処理をX秒間待たせる(停止させる)方法
(1-1) 構文①
(1-2) 構文①サンプルプログラム
(1-3) 構文②
(1-4) 構文②サンプルプログラム
(1) バッチ処理をX秒間待たせる(停止させる)方法
当記事ではバッチ処理の中でX秒(X:整数)の間待たせる(停止させる)方法を2つご紹介します。
(1-1) 構文①
(構文)
ping -n [秒数] 127.0.0.1 > nul 2>&1
「127.0.0.1」は「ループバックアドレス」と呼ばれ、そのコンピュータ自体(localhost)を表す、自分自身と通信するための仮想のネットワークインターフェースです。主な用途は診断やトラブル対応にて使用されます。そのマシン自体がサーバの役割を果たしている場合などに使用されます。
「リダイレクト」の意味や使い方については別記事でもう少し記述しているため、詳しく知りたい方は併せてご覧下さい。
URL:バッチで見る「2>&1」の意味
(1-2) 構文①サンプルプログラム
(サンプルプログラム)
@echo off echo %time% ping -n 3 127.0.0.1 > nul 2>&1 echo %time%
(補足)
最初の「@echo off」でコマンド自体をコンソールに表示しない(実行結果のみを表示する)にしています。
3行目の「ping」コマンドが構文①で紹介している「待つ」コマンドです。-nの後の引数が「3」なので3秒待つ例になります。
2行目と4行目の「echo %time%」は待ちの前後でタイムスタンプを表示し、ちゃんと狙った秒数待っているか?をチェックします。
(図121)実行結果
(操作動画)待っている様子が分かりやすいよう動画も用意しました。
(1-3) 構文②
次に2つ目の方法をご紹介します(結果は構文①と同じになります)。
(構文②)
timeout [秒数]
(説明)
「timeout」の後ろに「待つ秒数」を入れる事で、指定の時間だけ待たせる事ができます。加えて、待ちの残り秒数のメッセージがコンソールに表示されます。ただし、注意点としてタイムアウトまでの時間は「秒単位」でししか指定できず、「ミリ秒単位」では指定できません。
また、このままですと待ち時間であっても何かキーを押す事で待ちを終了してしまうため、それを避けたい場合は「/NOBREAK」オプションを指定します。
timeout [秒数] /NOBREAK
(1-4) 構文②サンプルプログラム
(サンプルプログラム)
@echo off echo %time% timeout 3 > nul 2>&1 echo %time%
(図141)実行結果
(操作動画)待っている様子が分かりやすいよう動画も用意しました。