Windows10のコマンドプロンプトで「timeout」が効かない場合の対処法

コマンドプロンプト timeout 効かない

Windows10のバッチファイルの中で、処理と処理の間に待ち時間を入れたい場合は、「timeout」コマンドを使用しますよね?今回はこれがなぜか効かない場合の対処法を紹介します。

コマンドプロンプトで「timeout」が効かない現象

具体的にどのような現象が発生したのか?というと、

次のように処理Aと処理Bの間に「timeout」コマンドを入れてバッチ処理を実施したところ、稀に「timeout」が効かない現象が発生したのです。

処理A

timeout /t 60

処理B

具体的には、処理Aが終了してから「timeout」コマンドで待つはずの60秒を待たずに処理Bが実行される現象が発生しました。

そしてこの現象は、数十回に1回程度の頻度で発生しました。

コマンドプロンプトで「timeout」が効かない対処法

「timeout」コマンドを何もオプションを指定せずに実行した場合は、実行中に何かキーが押されてしまうと待ち状態が解除されます。待ちが解除されないようにしたい場合は、「timeout」コマンドに「nobreak」オプションを追加する必要があります。

処理A

timeout /t 60 /nobreak

処理B

この「nobreak」を付けると、「timeout」コマンド実行中に、何らかのキーが押されても待ち状態が解除されなくなります。

今回の「timeout」コマンドが効かない現象は、頻度が少なく原因追及まではできておりませんが、この「nobreak」オプションを付けた後は、今のところ今回起きた問題の現象は発生しておりません。

コマンドプロンプトで「timeout」が効かないまとめ

今回は、コマンドプロンプトで「timeout」を実行したときに、なぜか効かないことがある現象の対処法を紹介しました。

全てのケースで解決できるものではありませんが、試してみる価値はありますので、お悩みの方は是非1度試してみてくださいね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする