批处理之延时
程序员文章站
2022-05-01 12:40:23
...
windows系统中批处理中秒级延时是比较容易实现的,但毫秒级的延时,度娘后有很多人洋洋洒洒的复制粘贴的说精确的,基本上都抗不过实际验证。
秒级延时可以用
timeout n
timeout /t n
但是毫秒级延时,则是以下相对准确
@echo off
@echo >nul 2>nul CurrentTime: %time%
::设置延时时间ms
set delay=200
set TotalTime=0
set NowTime=%time%
::读取起始时间,时间格式为:00:00:00.00
@echo >nul 2>nul StartTime: %NowTime%
: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 %delay% goto delay_continue
@echo >nul 2>nul EndTime: %time%
@echo >nul 2>nul TargetDelay: %delay%ms
echo ActualDelay: %TotalTime%ms
上一篇: maven 打可执行jar包
下一篇: Spring 监听器