找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23413|回复: 5

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

[复制链接]
发表于 2013-8-3 11:59:20 | 显示全部楼层 |阅读模式
将内容粘贴到记事本的样子如下:

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

"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
发表于 2013-8-3 15:00:44 | 显示全部楼层

  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
复制代码
 楼主| 发表于 2013-8-3 15:19:13 | 显示全部楼层
测试了一下,合计时间成功,只是结果显示上是否可以排列一下?通话时间多到少如:
22:11:00
00:19:22
00:15:33
00:00:08
这样就知道3分钟或5分钟以上的通话有几个?
发表于 2013-8-3 18:21:02 | 显示全部楼层
本帖最后由 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%
复制代码
 楼主| 发表于 2013-8-3 19:19:30 | 显示全部楼层
没成功,不过下面这个代码可以@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
发表于 2013-8-3 19:39:27 | 显示全部楼层
回复 5# 非常感谢


     庐山瀑布汗,你把回复中除了代码以外的文字统统拿掉直接运行就可以了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 12:45 , Processed in 0.017954 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表