サーチ…


前書き

このトピックでは、スクリプト言語、バッチファイルで知るべき多くの有用なことの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フォルダに配置します。通常のコマンドとして使用できます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow