Windows CMD BAT批处理延时 延迟 等待启动的几个方法

xingyun86 2019-4-2 648

方法一:ping

缺点:时间精度为1秒,不够精确

@echo off
@ping 127.0.0.1 -n 6 >nul
start "" /D %~dp0 test.exe

方法二:vbs start /wait

缺点:生成临时文件

有点:时间精度为0.001秒,精度高

@echo off
echo wscript.sleep 5000>sleep.vbs
start /wait sleep.vbs
start "" /D %~dp0 test.exe
del /f /s /q sleep.vbs

方法三:vbs cscript

@echo off
echo wscript.sleep 5000>sleep.vbs
@cscript sleep.vbs >nul
start "" /D %~dp0 test.exe
del /f /s /q sleep.vbs

方法四:choice

优点:时间精确,CPU占用低,是最佳选择

@echo off
choice /t 5 /d y /n >nul
start "" /D %~dp0 test.exe

方法五:for+set+if,时间精度为0.01秒

缺点:CPU占用高,语句过长,不常用

@echo off
setlocal enableextensions
echo %time%
call :ProcDelay 500
echo %time%
start "" /D %~dp0 test.exe
:ProcDelay delayMSec_
setlocal enableextensions
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
:_procwaitloop
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
set /a diff_=%now_%-%start_%
if %diff_% LSS %1 goto _procwaitloop
endlocal & goto :EOF


×
打赏作者
最新回复 (0)
只看楼主
全部楼主
返回