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 結束…
- 如何在批次檔(Batch)中實現 sleep 命令讓任務暫停執行 n 秒](https://blog.miniasp.com/post/2009/06/24/Sleep-command-in-Batch.aspx)
參考資料
更新日誌
日期 | 內容 |
---|---|
2017/07/26 | 初版 |
關鍵字
- 批次檔 延時
- 批次檔 Delay
- 批次檔 Sleep
- Batch Delay
- Batch Sleep
- 批次檔 暫停 Sleep Delay
The post Windows 批次檔中產生延時效果 appeared first on 可丁丹尼 @ 一路往前走2.0.