バッチでコマンド タイムアウトを設定する
この記事では、最初に Batch スクリプトの timeout
コマンドの概念について説明します。 この後、他のコマンドの timeout
コマンドの設定について説明します。
バッチ スクリプトの timeout
コマンド
timeout
は、特定の期間、一時停止または遅延するためのユーティリティです。 このコマンドは、一定量の休憩を作成し、コマンドライン インターフェイスで一時停止を作成します。
timeout
コマンドの構文は次のとおりです。
timeout /t <time in seconds> [/nobreak]
/t
を指定したコマンド timeout
は、遅延を作成するために使用され、その後に <time in seconds>
、遅延を作成するための時間を秒単位で表す -1 から 100000 までの整数、およびオプション パラメータ /nobreak
.
timeout
コマンドで -1
を使用すると、いずれかのキーが押されるまで無期限の遅延が発生します。
次の timeout
コマンドを検討してください。
timeout /t 5
timeout /t 5
コマンドは、5 秒またはキーが押されなくなるまで遅延します。 コマンドの出力は次のとおりです。
オプションのパラメータ /nobreak
は、timeout
コマンドによって作成された遅延中のキーストロークを無視するために使用されます。 たとえば、次のコマンドを考えてみましょう。
timeout /t 5 /nobreak
次のコマンドの出力は次のとおりです。
timeout
コマンド メッセージも非表示にできます。 コマンド timeout /t 5 > nul
は、出力メッセージを nul
にリダイレクトすることにより、timeout
コマンドのメッセージを非表示にするために使用されます。
その他のコマンドまたはプロセスに timeout
を設定する
他のカスタム コマンドまたはプロセスのタイムアウトを遅らせることができます。 次のバッチ スクリプトを検討してください。
@echo off
start notepad.exe
timeout /t 4
taskkill /f /im notepad.exe > nul && (
echo Task is killed.
exit /b 31744
) || (
echo No Command or Task to kill. The task is terminated in time.
)
上記のバッチ スクリプトでは、@echo off
コマンドを使用して、実行中のコマンドをコマンド プロンプトから隠しています。 start notepad.exe
コマンドは、プロセスを開始し、メモ帳エディター ウィンドウを起動するために使用されます。
コマンド timeout /t 4
コマンドは 4 秒遅延し、taskkill
コマンドが続きます。これは notepad.exe
プロセスが終了していない場合は終了します。
さらに、このスクリプトは Task is killed.
を示しています。 taskkill
コマンドが notepad.exe
プロセスを強制終了する場合、ターミナル上で。
timeout
遅延中に notepad.exe
が既に強制終了されている場合、taskkill
コマンドは notepad.exe
を強制終了せず、次の出力とともにエラー メッセージを表示します。
No Command or Task to kill. The task is terminated in time.