计时器在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

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...