1. ホーム
  2. batch-file

[解決済み] バッチスクリプトで待つには?[重複しています]

2022-04-20 01:08:11

質問

バッチスクリプトを書いていて、2つの関数呼び出しの間に10秒待とうとしています。コマンドは

sleep 10

バッチファイルを10秒間待機させない。

Windows XPを使用しています。

注意 の完全な複製ではありません。 バッチファイルでのスリーピング 他の質問はPythonに関するものですが、こちらはWindowsのバッチファイルに関するものだからです。

解決するには?

存在しないアドレスにpingを打ち、任意のタイムアウトを指定することができます。

ping 192.0.2.2 -n 1 -w 10000 > nul

そして、そのアドレスは存在しないので、10,000ms(10秒)待って、リターンします。

  • -w 10000 の部分は、希望するタイムアウトをミリ秒単位で指定します。
  • -n 1 の部分は、pingに対して 一度だけ (通常は4回試す)。
  • > nul の部分が追加され、ping コマンドが画面に何も出力しないようにします。

PATHのどこかにsleep.batを作成し、上記のテクニックを使えば、簡単にsleepコマンドを自作することができます。

rem SLEEP.BAT - sleeps by the supplied number of seconds

@ping 192.0.2.2 -n 1 -w %1000 > nul


NOTE (2002年9月): 192.0.2.xのアドレスは、以下のように予約されています。 RFC 3330 ということで、現実世界には間違いなく存在しないでしょう。仕様書から引用します。

<ブロッククオート

192.0.2.0/24 - このブロックは "TEST-NET" として割り当てられ、以下の用途で使用されます。 のドキュメントとサンプルコードです。 これは、しばしば ベンダーやプロトコルのドメイン名 example.com や example.net は のドキュメントを参照してください。 このブロックに含まれるアドレスは、以下のように表示されることはありません。 公衆インターネット