首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算从另一个批处理文件调用批处理文件的开始和结束时间?

如何计算从另一个批处理文件调用批处理文件的开始和结束时间?
EN

Stack Overflow用户
提问于 2013-05-03 15:58:15
回答 4查看 838关注 0票数 0

目前,我正在运行多个批处理文件,并行调用来自主批处理文件。我想计算一下完成所有批处理文件的执行所需的时间。

例如,我有一个MainScript.bat文件,它可以同时调用20多个批处理文件。现在我想知道完成执行脚本需要多长时间。

EN

回答 4

Stack Overflow用户

发布于 2013-05-03 16:03:29

代码语言:javascript
复制
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do set %x

将设置可用于计算的变量DayDayofWeekHourMinuteMonthQuarterSecondWeekInMonthYear

票数 0
EN

Stack Overflow用户

发布于 2013-05-03 16:11:44

代码语言:javascript
复制
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Timer ID
::
:: By:   Ritchie Lawrence, 2002-10-10. Version 1.0
::
:: Func: Returns number of seconds elapsed since the function was last
::       called and first called. For NT4/2K/XP.
::
:: Args: %1 (by ref) The first time this function is called, this variable
::       is initialised to '<last> <first> <init>' where <first> and <last>
::       are zero and <init> is the number of elapsed seconds since
::       1970-01-01 00:00:00. This value is used by subsequent calls to
::       determine the elapsed number of seconds since the last call
::       (<last>) and the first call (<first>).
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
setlocal ENABLEEXTENSIONS&call set ID=%%%1%%
set t=2&if "%date%z" LSS "A" set t=1
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo/^|date') do (
  for /f "tokens=%t%-4 delims=.-/ " %%d in ('date/t') do (
    set %%a=%%d&set %%b=%%e&set %%c=%%f))
for /f "tokens=5-7 delims=:. " %%a in ('echo/^|time') do (
  set hh=%%a&set nn=%%b&set ss=%%c)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
set /a hh=100%hh%%%100,nn=100%nn%%%100,ss=100%ss%%%100
set /a j=j*86400+hh*3600+nn*60+ss
for /f "tokens=1-3 delims= " %%a in ('echo/%ID%') do (
  set l=%%a&set f=%%b&set c=%%c)
if {%c%}=={} endlocal&set %1=0 0 %j%&goto :EOF
set /a l=j-c-l,f+=l
endlocal&set %1=%l% %f% %c%&goto :EOF
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
票数 0
EN

Stack Overflow用户

发布于 2013-05-03 16:24:40

一个更简单的计时器工具:

像这样启动它: timer.bat ping localhost

代码语言:javascript
复制
@echo off
set t1=%time%
call %*
set t2=%time%

call :showTime "Time taken:" "%t1%" "%t2%"
goto :EOF

:showTime
setlocal
for /f "tokens=1-4 delims=:." %%d in (%2) do set /a "t1=%%d*360000+1%%e*6000+1%%f*100+1%%g-610100"
for /f "tokens=1-4 delims=:." %%d in (%3) do set /a "t2=%%d*360000+1%%e*6000+1%%f*100+1%%g-610100, t=t2-t1"
echo.
echo %~1 %t%0 msec
pause
goto :EOF
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16354131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档