batch-file
バッチファイルに遅延を追加する
サーチ…
前書き
このトピックでは、スクリプト言語、バッチファイルで知るべき多くの有用なことの1つを教えてくれます。バッチファイルに遅延/一時停止/タイムアウトを追加する。
タイムアウト
タイムアウト
一定の時間遅延または一時停止を行う最も簡単な方法は、標準コマンドTIMEOUT
です。ちょうど1分続くタイムアウトを作るには、次のようにタイプします:
timeout /t 60
今ここで何が起こっているのですか?
最初に、 TIMEOUT
コマンドをパラメータ/T
(単にタイムアウトを意味する)で使用してから、待機する秒数を指定します。この場合... 60
秒。
パラメータ/ NOBREAKでのタイムアウト
以前の例をBATCHファイルで実行した場合、 timeout /t 60
とすると、60秒待っているうちに、実際にキーボードの任意のキーを押してタイムアウトを解除することができます。これを防ぐには、パラメータ/NOBREAK
を最後に追加するだけです。
timeout /t 60 /nobreak
これにより、60秒間タイムアウトします。タイムアウトを解除するには、キーボードの(CTRL-C)を押す必要があります。
サイレントタイムアウト
それがタイムアウトしているとき、それは表示されます:
Waiting for X seconds, press a key to continue ...
or
Waiting for X seconds, press CTRL+C to quit ... [This is with the /NOBREAK parameter]
メッセージを非表示にするには、 NUL
引数を使用します( NUL
説明はここをクリックしてください )
timeout /t 60 > nul
or
timeout /t 60 /nobreak > nul
一時停止
スクリプトを一時停止させるには、単にPAUSE
コマンドを使用します。
PAUSE
これにより、 Press any key to continue . . .
するテキストが表示されますPress any key to continue . . .
その後、ユーザー入力に改行を追加します。
「Hello World」プログラムを作成し、キーボード上の何かをクリックした後、 EXIT
コマンドでプログラムを終了させたいとしましょう。
echo Hello World
pause
exit
ここでは、 ECHO
コマンドを使って "Hello World"と言う。次に、 PAUSE
コマンドを使用して、 Press any key to continue . . .
EXIT
コマンドを使用して現在のBATCHスクリプトを終了します。
一時停止中は次のように表示されます:
Press any key to continue . . .
「すべてのキーを押して続行...プロンプトを隠す」
メッセージを隠すために、出力をnul
という特殊なデバイスにリダイレクトします。これは実際のデバイスではありませんが、送信するものはすべて破棄されます。
pause > nul
Ping
Ping
一定時間遅延させるために最もよく使用されるコマンドの1つがping
です。
基本的な使用法
PING -n 1 -w 1000 1.1.1.1
REM the -n 1 flag means to send 1 ping request.
REM the -w 1000 means when the IP(1.1.1.1) does not respond, go to the next command
REM 1.1.1.1 is an non-existing IP so the -w flag can ping a delay and go to next command
これはあなたのバッチファイル/コンソールで次のように出力されます:
C:\Foo\Bar\Baz>ping -n -w 1000 1.1.1.1
Pinging 1.1.1.1 (Using 32 bytes of data)
Request timed out
Ping statistics for 1.1.1.1
Packets: Sent = 2,Received = 0, Lost = 1(100% loss)
エコーアウトされたテキストを非表示にする
コマンドの後ろに>nul
を追加するだけで、nullにリダイレクトされます。
ping -n w 1000 1.1.1.1 >nul
これは何も出力しません。
睡眠
睡眠
古いWindowsシステムでは、 timeout
は使用できません。ただし、 sleep
コマンドを使用できます。
使用法
sleep 1
非常に自明です。 1秒間スリープします。ただし、 sleep
は動作していないコマンドであり、 タイムアウトに置き換える必要があります。
可用性
このコマンドは、古いWindowsシステムで使用できます。また、 SLEEP.exe
は2003 Resource Kitに含まれています。
sleep.exe
を使用するには、実行可能ファイルを%Windir%\System32
フォルダに配置します。通常のコマンドとして使用できます。