标题: [数值计算] [已解决]批处理怎样记录每次运行所需的时间? [打印本页]
作者: wh1234567 时间: 2011-4-25 14:39 标题: [已解决]批处理怎样记录每次运行所需的时间?
想给一个批处理代码里添加一个本次运行时间统计,也就是当运行这个批处理到执行完毕所用的时间,并将所用时间也一并和执行完毕的数据输出到文本里,或者执行完毕后不自动退出并将所用时间显示在DOS窗口里。按任意键才能退出的那种效果。
也可以将时间显示在窗口标题里也可。
谢谢您,能不能弄成时分秒的那种?
作者: batman 时间: 2011-4-25 15:01
你想要的结果:- @echo off
- set "t=%time%"
- ::下面放你的代码
- set "t1=%time%"
- if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
- 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)"
- echo 本次批处理运行时间为%times%ms
- pause
复制代码
作者: wh1234567 时间: 2011-4-25 18:44
2# batman
谢谢您,能不能弄成时分秒的那种?
作者: CrLf 时间: 2011-4-25 18:55
改了改:- @echo off
- set "t=%time%"
- ::下面放你的代码
- set "t1=%time%"
- if "%t1:~,2%" lss "%t:~,2%" set "add=+24"
- 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"
- 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 |