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

[数值计算] 批处理统计通话记录时间的方法

将内容粘贴到记事本的样子如下:

日期;日期;项目;目的地;类别;费率;通话时长;信用点数金额;货币

"2013年8月2日 23:10";"2013-08-02T23:10:57+00:00";"+861077777777";"China-Beijing";"通话";0.000;00:10:09;0.000;KRW
"2013年8月2日 23:10";"2013-08-02T23:10:39+00:00";"+861011111111";"China-Beijing";"通话";0.000;00:05:07;0.000;KRW
"2013年8月2日 23:10";"2013-08-02T23:10:22+00:00";"+861022222222";"China-Beijing";"通话";0.000;01:08:08;0.000;KRW


批处理后
00:10:09
00:05:07
01:08:08

合计:01:23:24

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=7delims=;" %%a in (a.txt) do (
  3.     echo %%a
  4.     for /f "tokens=1-3delims=:" %%i in ("%%a") do (
  5.         set/a h+=1%%i%%100,m+=1%%j%%100,s+=1%%k%%100
  6.     )
  7. )
  8. set/a m+=s/60,s=s%%60+100,h+=m/60,m=m%%60+100
  9. if !h! lss 10 set h=0!h!
  10. echo 合计: !h!:!m:~-2!:!s:~-2!
  11. )>b.txt
  12. start b.txt
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

测试了一下,合计时间成功,只是结果显示上是否可以排列一下?通话时间多到少如:
22:11:00
00:19:22
00:15:33
00:00:08
这样就知道3分钟或5分钟以上的通话有几个?

TOP

本帖最后由 xxpinqz 于 2013-8-3 18:24 编辑

回复 3# 非常感谢
  1. @echo off
  2. %1(for /f "delims=" %%a in ('%~0 :^|sort /r')do echo,%%a)>b.txt
  3. for /f "tokens=7delims=;" %%a in (a.txt) do (
  4.     echo %%a
  5.     for /f "tokens=1-3delims=:" %%i in ("%%a") do (
  6.         set/a h+=1%%i%%100,m+=1%%j%%100,s+=1%%k%%100
  7.     )
  8. )
  9. set/a m+=s/60,s=s%%60+100,h+=m/60,m=m%%60+100
  10. if %h% lss 10 set h=0%h%
  11. echo  合计: %h%:%m:~-2%:%s:~-2%
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

没成功,不过下面这个代码可以@sort /r b.txt /o c.txt
我想把两个代码合在一起用怎么写
第一个代码就是上面写的:
@echo off&setlocal enabledelayedexpansion
(for /f "tokens=7delims=;" %%a in (a.txt) do (
    echo %%a
    for /f "tokens=1-3delims=:" %%i in ("%%a") do (
        set/a h+=1%%i%%100,m+=1%%j%%100,s+=1%%k%%100
    )
)
set/a m+=s/60,s=s%%60+100,h+=m/60,m=m%%60+100
if !h! lss 10 set h=0!h!
echo 合计: !h!:!m:~-2!:!s:~-2!
)>b.txt
start b.txt

第二个代码:
@sort /r b.txt /o c.txt

TOP

回复 5# 非常感谢


     庐山瀑布汗,你把回复中除了代码以外的文字统统拿掉直接运行就可以了...

TOP

返回列表