Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

バッチ処理 (Batch Scripts)

バッチ処理をX秒間待たせる(停止させる)方法

投稿日:2021年1月20日 更新日:

<目次>

(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
 
(説明)
pingでループバックアドレス(自分自身)を指定しています。pingコマンドの「-n」オプションはICMPプロトコル(pingのプロトコル)によるPing要求(Echo Request)の回数を指定します(デフォルトで4回)。この時、最初の要求は即座に発生して、その後は要求と要求の間はおおよそ1秒間隔が空くため「n-1」秒間だけ待つという挙動になります。
 
また後半の「[コマンド] > nul 2>&1」で「エラー出力」⇒「標準出力」⇒「nul」とリダイレクトしています。これによりping実行時に出る「ping を送信しています」のメッセージや応答のメッセージをコンソールに表示させないようにする事ができます。
 
(補足)

「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)実行結果

(操作動画)待っている様子が分かりやすいよう動画も用意しました。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-バッチ処理 (Batch Scripts)

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Windowsバッチでイベントログに出力する方法+オプション説明表・サンプルPGも掲載

<目次> (1) Windowsバッチでイベントログに出力する方法  (1-1) 構文  (1-2) サンプルプログラム  (1-3) 少し応用:ERRORLEVELの値に応じてログ出力 (1) Wi …

バッチでファイルパスやファイル名を取得する方法

<目次> (1) バッチでファイルパスやファイル名を取得する方法  (1-1) 構文  (1-2) コマンドのオプションについて  (1-3) サンプルプログラム 「for %%f in (&#822 …

Windowsでサービスの起動状態(ステータス)を取得するバッチ

<目次> (1) Windowsでサービスの起動状態(ステータス)を取得するバッチ  (1-1) 構文  (1-2) サンプルプログラム  (1-3) 実行手順  (1-4) 実行手順サンプル動画 ( …

Windowsのバッチで日付(yyyymmdd形式)や時刻(hhmmss形式)を取得する方法

<目次> (1) Windowsのバッチで日付(yyyymmdd形式)や時刻(hhmmss形式)を取得する方法  (1-1) バッチで日付を取得する  (1-2) バッチで日付を取得する(yyyymm …

バッチから引数を与えてPowershellを実行する方法

<目次> (1) バッチからPowershellを実行する方法  (1-1) 構文①  (1-2) 構文② (2) バッチから引数を与えてPowershellを実行する方法  (2-1) 引数を表現す …

  • English (United States)
  • 日本語
Top