bat中定义了一系列的全局变量, bat主体程序中调用定义的函数接口, 实现计算时间间隔的方法, 直接上代码
set _timeTemp=0
rem ......... 主函数体
call:GetTimeSeconds %time%
set time1=%_timeTemp%
rem choice 等待5秒 再计算另外一个时间点
choice /t 5 /d y /n >nul
call:GetTimeSeconds %time%
set time2=%_timeTemp%
set /a interTime=%time1% - %time2%
echo %interTime%
:GetTimeSeconds
set tt=%1
rem windows下%time%时间的格式一般为hour:minute:second.number 下面两行只是去掉冒号和顿号变成hour minute second number ,此处只是取hour minute second
set tt=%tt:.= %
set tt=%tt::= %
set index=1
for %%a in (%tt%) do (
if !index! EQU 1 (
set hh=%%a
)^
else if !index! EQU 2 (
set mm=%%a
)^
else if !index! EQU 3 (
set ss=%%a
)
set /a index=index+1
)
set /a _timeTemp=(%hh%*60+%mm%)*60+%ss%
goto:eof
记得如果 time1、time2是在bat中for、if等符合语句中时, 记得开启变量延迟setlocal enabledelayedexpansion , 另外获取 time1、time2的值的时候,不用%time1%、%time2%,而使用!time1!、!time2!