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

[文本处理] (已解决)批处理如何保留电话号码和通话时间,对通话时长排序?

本帖最后由 非常感谢 于 2013-8-4 22:26 编辑

保留电话号码和通话时长。要对通话时长做一个排序,(电话号码全部保留,不做过滤)
上一次对通话时间做一个排序,在论坛得到了答案,只是没添加电话号码,所已对数据没法分析统计,希望版主帮忙,谢谢!
将内容粘贴到记事本的样子如下:

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

"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


批处理后
+861022222222   01:08:08
+861077777777   00:10:09
+861011111111   00:05:07


通话时长合计:01:23:24
1

评分人数

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

本帖最后由 非常感谢 于 2013-8-4 22:24 编辑

测试成功,请大家参考7楼代码,感谢CrLf的热心帮助。

TOP

测试遗留没删掉,7 楼代码已修改

TOP

本帖最后由 非常感谢 于 2013-8-4 21:40 编辑

7楼的 按任意键后,出现b.txt就好了,那就完美了,,谢谢

TOP

本帖最后由 CrLf 于 2013-8-4 22:08 编辑

来个有合计的:
  1. @echo off
  2. %1 goto main
  3. for /f "delims=U" %%a in ('cmd /u /c echo 唉') do set "tab=%%a"
  4. for /f "tokens=3,7 delims=;" %%a in (a.txt) do (
  5.    echo %%~a%tab%%%b
  6.    for /f "tokens=1-3 delims=:" %%i in ("%%b") do set/a h+=1%%i%%100,m+=1%%j%%100,s+=1%%k%%100
  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. exit/b
  12. :main
  13. call %0 : 2>nul | more /t20 | sort /+20 /r /o b.txt
  14. pause
复制代码
1

评分人数

TOP

回复 2# canyuexiaolang


   项目 通话时长
+861077777777 00:10:09
+861011111111 00:05:07
+861022222222 01:08:08
这个通话时长没有排序,也缺少合计时间。可以修正吗?

TOP

回复 3# CrLf


  这个可以,
项目                通话时长  
+861022222222       01:08:08  
+861077777777       00:10:09  
+861011111111       00:05:07  

只是缺个  合计:01:23:24  希望可以修正,谢谢!

TOP

统计通话时长真蛋疼..真的..坐等@batman

TOP

  1. @echo off
  2. for /f "delims=U" %%a in ('cmd /u /c echo 唉') do set "tab=%%a"
  3. (
  4.    @for /f "tokens=3,7 delims=;" %%a in (a.txt) do @echo %%~a%tab%%%b
  5. ) | more /t20 | sort /+20 /r /o b.txt
  6. pause
复制代码

TOP

本帖最后由 canyuexiaolang 于 2013-8-4 20:46 编辑
  1. (for /f "tokens=3,7 delims=;" %%i in (1.txt) do @(echo %%~i %%j)) > new.txt
复制代码

TOP

返回列表