微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计时器在Windows批处理文件中

有人可以指点一种向Windows批处理文件添加计时器的方式吗?我需要跟踪我的批次从开始运行的时间.
重新计算经过时间的代码

>计算代码少,
>提供填充时间少于.1秒,
>使用标签允许多次调用,并对计时器代码进行分组.

可重用代码

:StartTimer
:: Store start time
set StartTIME=%TIME%
for /f "usebackq tokens=1-4 delims=:.," %%f in (`echo %startTIME: =0%`) do set /a Start100S=1%%f*360000+1%%g*6000+1%%h*100+1%%i-36610100
goto :EOF

:StopTimer
:: Get the end time
set StopTIME=%TIME%
for /f "usebackq tokens=1-4 delims=:.," %%f in (`echo %stopTIME: =0%`) do set /a Stop100S=1%%f*360000+1%%g*6000+1%%h*100+1%%i-36610100
:: Test midnight rollover. If so,add 1 day=8640000 1/100ths secs
if %stop100S% LSS %start100S% set /a Stop100S+=8640000
set /a TookTime=%stop100S%-%start100S%
set TookTimePadded=0%TookTime%
goto :EOF

:displayTimerResult
:: Show timer start/stop/delta
echo Started: %startTime%
echo Stopped: %stopTime%
echo Elapsed: %TookTime:~0,-2%.%TookTimePadded:~-2% seconds
goto :EOF

通话代码

call :StartTimer
:: 
:: Add your script functionality here
::
call :StopTimer
call :displayTimerResult
pause

call :StartTimer
:: 
:: Add more script functionality here
::
call :StopTimer
call :displayTimerResult
goto :EOF

注意“1”-prefix,以避免零填充值的解释错误为八进制值(08和09),并用适当的常数进行校正.由于这可能令人困惑的了解核心计算,一行for语句的替代方法将如下所示:

for /f "usebackq tokens=1-4 delims=:.," %%f in (`echo.%startTIME%`) do set TempTIME=%%f %%g %%h %%i
for /f "usebackq tokens=1-4" %%f in (`echo %TempTIME: 0= %`) do set /a Start100S=%%f*360000+%%g*6000+%%h*100+%%i

原文地址:https://www.jb51.cc/windows/371610.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐