欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

批处理之延时

程序员文章站 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

 

相关标签: batch