网上其它地方流传的方法有BUG,例如分钟可能会为负数。
特改善一版,时长最大支持24小时。
参考代码:
rem 耗时计算,初始化
set testtime=%time%
set tmpIntText=%testtime:~0,2%
if "%tmpIntText:~0,1%" == "0" ( set tmpIntText=%tmpIntText:~1,1%)
set /a batStartH=%tmpIntText%
set tmpIntText=%testtime:~6,2%
if "%tmpIntText:~0,1%" == "0" ( set tmpIntText=%tmpIntText:~1,1%)
set /a batStartS=%tmpIntText%
set tmpIntText=%testtime:~3,2%
if "%tmpIntText:~0,1%" == "0" ( set tmpIntText=%tmpIntText:~1,1%)
set /a batStartM=%tmpIntText%
rem 耗时计算,初始化完成
在这里可以添加很多你想要做的事情。。。
例如消耗掉三秒:ping 192.168.1.1
rem 耗时计算,结束开始统计并打印,开始
set testtime=%time%
set tmpIntText=%testtime:~0,2%
if "%tmpIntText:~0,1%" == "0" ( set tmpIntText=%tmpIntText:~1,1%)
set /a batEndH=%tmpIntText%
set tmpIntText=%testtime:~6,2%
if "%tmpIntText:~0,1%" == "0" ( set tmpIntText=%tmpIntText:~1,1%)
set /a batEndS=%tmpIntText%
set tmpIntText=%testtime:~3,2%
if "%tmpIntText:~0,1%" == "0" ( set tmpIntText=%tmpIntText:~1,1%)
set /a batEndM=%tmpIntText%
set /a batdiffH_=%batEndH%-%batStartH%
set /a batdiffS_=%batEndS%-%batStartS%
set /a batdiffM_=%batEndM%-%batStartM%
if "%batdiffH_:~0,1%" == "-" ( set /a batdiffH_=24-%batStartH%+%batEndH%)
if "%batdiffM_:~0,1%" == "-" ( set /a batdiffM_=60-%batStartM%+%batEndM%
set /a batdiffH_=%batdiffH_%-1)
if "%batdiffS_:~0,1%" == "-" ( set /a batdiffS_=60-%batStartS%+%batEndS%
if batdiffM_==0 ( set /a batdiffH_=%batdiffH_%-1)
if batdiffM_ neq 0 (set /a batdiffM_=%batdiffM_%-1)
)
echo 批量制作完成,耗时: %batdiffH_%小时 %batdiffM_%分钟%batdiffS_%秒
rem 耗时计算,结束开始统计并打印,结束
本文结束。