Windows 批次檔中產生延時效果

Windows 批次檔中產生延時效果

Windows 中撰寫批次檔時會需要等一段時間後再執行程式,像我用批次檔掛載網路磁碟後,必需要再網路磁碟裡面執行某個程式時,丹尼會等約3秒讓它掛載順利後再執行程式。

要讓批次檔中產生延時效果丹尼提供幾個Windows內建的程式,利用程式的特性產生以秒為單位的延時功能。

Ping

Ping提供測試封包是否有傳達到指定的主機IP,使用參數n讓Ping產生1次封包測試及參數w每次等候時間1000毫秒的組合產生1秒的延時,

ping 127.0.0.1 -n 1 -w 1000

秒數要增加時變更參數n的值,例如要延時5秒就改成:

ping 127.0.0.1 -n 5 -w 1000

Timeout

這個命令在Windows Vista之後才提供的,所以Windows Vista/7/8/10執適用,除之外外像Windows XP就請使用Ping的方式。第一次使用執行

timeout /?

此命令會列出參數使用方式,參數非常的簡單又少,等下會使用到參數T

TIMEOUT [/T] timeout [/NOBREAK]

描述:
    這個公用程式接受逾時參數,等候指定的時間長度
    (單位是秒數) 或等到按了鍵以後。
    它同時也接受參數。

參數清單:
    /T        timeout       指定等候的秒數。
                            有效範圍介於 -1 和 99999 秒之間。

    /NOBREAK                略過按鍵,等候指定的時間長度。

    /?                      顯示這個說明訊息。

注意事項: 等候逾時的值如果是 -1 則表示一直等候按鍵。

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

範例使用timeout產生延時1秒

timeout /t 1

執行後結果會有進行倒數提示,如下:

等候 1 秒後,請按任何一個鍵繼續…

範例中能看到提示上有寫請按任何一個鍵繼續…,代表你可以按任何一鍵就能讓延時的秒數失效,所以再增加NOBREAK讓它真正的要等到秒數到時才能離開

timeout /t 1 /nobreak

執行後,如果要強制取消必需要按下組合鍵CTRL + C

等候 1 秒後,按 CTRL+C 結束…

參考資料

更新日誌

日期 內容
2017/07/26 初版

關鍵字

  • 批次檔 延時
  • 批次檔 Delay
  • 批次檔 Sleep
  • Batch Delay
  • Batch Sleep
  • 批次檔 暫停 Sleep Delay