1、利用ping命令延時
批處理示例1:
@echo off
echo 延時前:%time%
ping /n 3 127.0.0.1 >nul
echo 延時後:%time%
pause
解說:用到了ping命令的「/n」引數,表示要傳送多少次請求到指定的ip。本例中要傳送3次請求到本機的ip(127.0.0.1)。127.0.0.1可簡寫為127.1。「>nul」就是遮蔽掉ping命令所顯示的內容。
2、利用for命令延時
批處理示例2:
@echo off
echo 延時前:%time%
for /l %%i in (1,1,5000) do echo %%i>nul
echo 延時後:%time%
pause
解說:原理很簡單,就是利用乙個計次迴圈並遮蔽它所顯示的內容來達到延時的目的。
3、利用vbs延遲函式,精確度毫秒,誤差1000毫秒內
批處理示例3:
@echo off
echo %time%
call :delay 5000
echo %time%
pause
exit
:delay
echo wscript.sleep %1>delay.vbs
cscript //b delay.vbs
del delay.vbs
goto :eof
上面的執行結果顯示實際延時了5500毫秒,多出來的500毫秒時建立和刪除臨時檔案所耗費的時間。誤差在一秒之內。
4、僅用批處理命令實現任意時間延遲,精確度10毫秒,誤差50毫秒內僅用批處理命令就可以實現延遲操作。
批處理示例4:
@echo off
實現原理:首先設定要延遲的毫秒數,然後用迴圈累加時間,直到累加時間大於等於延遲時間。
誤差:windows系統時間只能精確到10毫秒,所以理論上有可能存在10毫秒誤差。經測試,當延遲時間大於500毫秒時,上面的延遲程式一般不存在誤差。當延遲時間小於500毫秒時,可能有幾十毫秒誤差,為什麼?因為延遲程式本身也是有執行時間的,同時系統時間只能精確到10毫秒。
為了方便引用,可將上面的例子改為子程式呼叫形式:
批處理示例5:
::-----------以下為延時子程式--------------------
:delay
@echo off
if "%1"=="" goto :eof
set delaytime=%1
set totaltime=0
set nowtime=%time%
::讀取起始時間,時間格式為:13:01:05.95
:delay_continue
set /a minute1=1%nowtime:~3,2%-100
set /a second1=1%nowtime:~-5,2%%nowtime:~-2%0-100000
set nowtime=%time%
set /a minute2=1%nowtime:~3,2%-100
set /a second2=1%nowtime:~-5,2%%nowtime:~-2%0-100000
set /a totaltime+=(%minute2%-%minute1%+60)%%60*60000+%second2%-%second1%
if %totaltime% lss %delaytime% goto delay_continue
goto :eof
::模擬進度條效果示例1:
@echo off&color 2f&title 本程式僅用於「模擬進度條效果」的演示 【初學者】
echo.
echo.
set hanye=───────
for /l %%j in (1 1 62) do set /p gu=*
本程式僅用於「模擬進度條效果」的演示 【初學者】 *
echo *
程式正在載入中:
*echo *┌%hanye%%hanye%%hanye%%hanye%┐*
set /p =* ■nul
echo 100%%*
echo *└%hanye%%hanye%%hanye%%hanye%┘*
for /l %%j in (1 1 62) do set /p gu=*
bat 延時啟動某個應用
1 bat延時 xp程式中通過ping 127.0.0.1 n 20 來實現延時操作,ping本地位址20行。win7中通過timeout 20 來實現延時20秒。2 刪除指定檔案 del q d 11 刪除d 11資料夾下的所有檔案,並且不需要提示刪除。p 刪除每乙個檔案之前提示確認。f 強制刪除...
批處理bat 延時啟動的方法
批處理延時啟動的方法有很多 常見的有 ping,vbs等方法,方法很多,優缺點各有不同。經過實驗總結如下 時間間隔精度高,cpu佔用率低 如下 choice t 5 d y n nul 1choice命令格式如下 choice c choices n cs t timeout d choice m ...
實現延時訊息
基於外部儲存的方案本質上都是乙個套路,將 mq 和 延時模組 區分開來,延時訊息模組是乙個獨立的服務 程序。延時訊息先保留到其他儲存介質中,然後在訊息到期時再投遞到 mq。1.1 基於 資料庫 如mysql 基於關係型資料庫 如mysql 延時訊息表的方式來實現。create table delay...