bat 實現延時

2021-06-26 06:46:29 字數 2288 閱讀 1369

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...