[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] [已解决]批处理怎样记录每次运行所需的时间?

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

你想要的结果:
  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
复制代码
***共同提高***

TOP

2# batman
谢谢您,能不能弄成时分秒的那种?

TOP

改了改:
  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%
复制代码
其实只求时分秒的话,这样算是绕弯了的,但是我比较懒,不想重新写,嘿嘿
1

评分人数

TOP

"ss=(times/100)%%60","mm=(times/6000)%%60","hh=times/360000","ms=times%%100"
这里 * / %算术同级,不必使用括号
这里只有带括号的才需要引号
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

3# wh1234567


能不能把这种需求更新到顶楼?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

跨天好像不行

TOP

谢谢分享!

TOP

回复 4# CrLf


大神,可以把毫秒去掉么?只算时 分 秒,谢谢!

TOP

回复 9# 爱我所爱啊


    4楼第7行代码里面的.%ms%去掉就行了
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表