Windowsのコマンドプロンプト、バッチで一定時間待つ(wait)するコマンド

Windowsを運営していると、コマンドをバッチ処理させて、ログオンスクリプト、ログオフスクリプトなどに組み込むことがあると思います。


以前、Windowsのコンピューター認証がうまく適用されないことがあり、時刻同期などログオンスクリプトに組み込んだこともあります。


後、よく使われるのが定期リブートなどですかね。


そして、私はどちらかというとWindowsのほうが長いですが、Linuxではシェル実行時にある一定時間待つコマンドに「sleep」があります。

 
 
同様にWindowsのコマンドでLinuxのSleepに代わるコマンドがあります。Windowsの一定時間待つコマンドは「TIMEOUT」になります。

 

c:\>TIMEOUT /?

TIMEOUT [/T] タイムアウト [/NOBREAK]

説明:
    このユーティリティでは、タイムアウトのパラメーターを指定して、一定の時間 (秒)
    が経過するまで、またはユーザーが任意のキーを押すまで、プログラムを待機
    させることができます。
    キー入力を無視するためのパラメーターを指定することもできます。

パラメーター一覧:
    /T        タイムアウト  待機する時間 (秒) を指定します。
                            有効な範囲は -1 から 99999 秒までです。

    /NOBREAK                キーが押されても無視し、指定時間待ちます。

    /?                      このヘルプを表示します。

注意: タイムアウト値 -1 は、キーが押されるまで無限に待機することを意味します。

例:
    TIMEOUT /?
    TIMEOUT /T 10
    TIMEOUT /T 300 /NOBREAK
    TIMEOUT /T -1

c:\>

ちなみに、このコマンドの詳細はマイクロソフトのサイトを参照してください。ただ、無駄に機械翻訳されていてみにくいですが。

>>タイムアウト(マイクロソフト)

・Timeout コマンドは、バッチ ファイル内で通常使用されます。 
タイムアウト期間の有効期限が切れていない場合でもユーザーのキー入力コマンド プロセッサの実行を即座に再開します。 
・sleep コマンドと組み合わせて使用すると、timeout は pause コマンドと同様の動作をします。 

例えば、次のコマンドの実行まで10秒待たせる場合は、以下のようにコマンドを実行します。

>TIMEOUT /T 10


ログオンスクリプトやログオフスクリプトの数が多くなると、うまく適用されないことがあるので、そういった場合に、時間差を出してコマンドを実行させたい場合に便利ですね。


また、VBScriptでもwaitさせるコマンドがありますが、それは別の機会に。