Board logo

标题: [数值计算] [已解决]批处理怎样记录每次运行所需的时间? [打印本页]

作者: wh1234567    时间: 2011-4-25 14:39     标题: [已解决]批处理怎样记录每次运行所需的时间?

想给一个批处理代码里添加一个本次运行时间统计,也就是当运行这个批处理到执行完毕所用的时间,并将所用时间也一并和执行完毕的数据输出到文本里,或者执行完毕后不自动退出并将所用时间显示在DOS窗口里。按任意键才能退出的那种效果。
也可以将时间显示在窗口标题里也可。
谢谢您,能不能弄成时分秒的那种?
作者: batman    时间: 2011-4-25 15:01

你想要的结果:
  1. @echo off
  2. set "t=%time%"
  3. ::下面放你的代码
  4. set "t1=%time%"
  5. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  6. set /a "times=(%t1:~,2%-%t:~,2%%add%)*360000+(1%t1:~3,2%%%100-1%t:~3,2%%%100)*6000+(1%t1:~6,2%%%100-1%t:~6,2%%%100)*100+(1%t1:~-2%%%100-1%t:~-2%%%100)"
  7. echo 本次批处理运行时间为%times%ms
  8. pause
复制代码

作者: wh1234567    时间: 2011-4-25 18:44

2# batman
谢谢您,能不能弄成时分秒的那种?
作者: CrLf    时间: 2011-4-25 18:55

改了改:
  1. @echo off
  2. set "t=%time%"
  3. ::下面放你的代码
  4. set "t1=%time%"
  5. if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
  6. set /a "times=(%t1:~,2%-%t:~,2%%add%)*360000+(1%t1:~3,2%%%100-1%t:~3,2%%%100)*6000+(1%t1:~6,2%%%100-1%t:~6,2%%%100)*100+(1%t1:~-2%%%100-1%t:~-2%%%100)" ,"ss=(times/100)%%60","mm=(times/6000)%%60","hh=times/360000","ms=times%%100"
  7. echo 本次批处理运行时间为%hh%:%mm%:%ss%.%ms%
复制代码
其实只求时分秒的话,这样算是绕弯了的,但是我比较懒,不想重新写,嘿嘿
作者: hanyeguxing    时间: 2011-4-25 19:18

"ss=(times/100)%%60","mm=(times/6000)%%60","hh=times/360000","ms=times%%100"
这里 * / %算术同级,不必使用括号
这里只有带括号的才需要引号
作者: Batcher    时间: 2011-4-25 19:40

3# wh1234567


能不能把这种需求更新到顶楼?
作者: ditto    时间: 2011-5-19 09:53

跨天好像不行
作者: tangqingfu    时间: 2013-6-4 23:43

谢谢分享!
作者: 爱我所爱啊    时间: 2018-4-26 15:53

回复 4# CrLf


大神,可以把毫秒去掉么?只算时 分 秒,谢谢!
作者: Batcher    时间: 2018-4-26 16:49

回复 9# 爱我所爱啊


    4楼第7行代码里面的.%ms%去掉就行了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2