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

[文本处理] [已解决]BAT如何批处理call_history_2013-08.csv 的问题?

下面批处理的对象是a.txt 正常导出是b.txt         只是我的源文件是call_history_2013-08.csv   将其扩展名改txt后执行是失败的。只能把其用记事本先打开,内容全部复制,再新建一个a.txt 粘贴上去,之后再执行批处理。有点繁琐。
是否有简单方法,谢谢!!!
  1. @echo off
  2. for /f "delims=U" %%a in ('cmd /u/c echo,唉') do set "tab=%%a"
  3. for /f "tokens=1-3delims=-./" %%a in ("%date:~,10%") do (
  4.     set /a yy=%%a,mm=1%%b-100,dd=1%%c-100
  5. )
  6. (for /f "tokens=1-7delims=;" %%a in ('findstr %yy%年%mm%月%dd%日 a.txt')do (
  7.     for /f %%i in ("%%~a") do echo,%%g %%i%tab%%%~c%tab%%%g
  8.     for /f "tokens=1-3 delims=:" %%i in ("%%g") do (
  9.         set /a h+=1%%i-100,m+=1%%j-100,s+=1%%k-100
  10.     )
  11. ))>$
  12. set /a k1=s/60,s=s%%60+100,m+=k1,k2=m/60,m=m%%60+100,h+=k2
  13. (
  14.     for /f "tokens=1*" %%a in ('sort /r ) do echo,%%b
  15.     echo,&echo,合计:%h%:%m:~1%:%s:~1%
  16. )>b.txt
  17. del $
复制代码
1

评分人数

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

CSV就是文本格式,直接改后缀名吧

TOP

  1. type call_history_2013-08.csv > a.txt
复制代码
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

本帖最后由 非常感谢 于 2013-8-25 13:00 编辑

回复 3# gawk
测试可以

TOP

回复 2# ADSL0125
测试时改扩展名导出后是空的,只能手动先打开call_history_2013-08.csv,把全部内容, 复制,再建立一个空的a.txt.粘贴上去,然后对a.txt进行批处理。

TOP

回复 4# 非常感谢


    能否把你的csv文件压缩一下传上来我试试
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

批处理call_history_2013-08.csv 的问题?

下面批处理的对象是a.txt 正常导出是b.txt         只是我的源文件是call_history_2013-08.csv   将其扩展名改txt后执行是失败的。只能把其用记事本先打开,内容全部复制,再新建一个a.txt 粘贴上去,之后再执行批处理。有点繁琐。
是否有简单方法,谢谢!!!
  1. @echo off
  2. for /f "delims=U" %%a in ('cmd /u/c echo,唉') do set "tab=%%a"
  3. for /f "tokens=1-3delims=-./" %%a in ("%date:~,10%") do (
  4.     set /a yy=%%a,mm=1%%b-100,dd=1%%c-100
  5. )
  6. (for /f "tokens=1-7delims=;" %%a in ('findstr %yy%年%mm%月%dd%日 a.txt')do (
  7.     for /f %%i in ("%%~a") do echo,%%g %%i%tab%%%~c%tab%%%g
  8.     for /f "tokens=1-3 delims=:" %%i in ("%%g") do (
  9.         set /a h+=1%%i-100,m+=1%%j-100,s+=1%%k-100
  10.     )
  11. ))>$
  12. set /a k1=s/60,s=s%%60+100,m+=k1,k2=m/60,m=m%%60+100,h+=k2
  13. (
  14.     for /f "tokens=1*" %%a in ('sort /r $') do echo,%%b
  15.     echo,&echo,合计:%h%:%m:~1%:%s:~1%
  16. )>b.txt
  17. del $
复制代码

TOP

本帖最后由 terse 于 2013-8-19 22:42 编辑

回复 7# 非常感谢
3楼正解
  1. @echo off
  2. for /f "delims=U" %%a in ('cmd /u/c echo,唉') do set "tab=%%a"
  3. for /f "tokens=1-3delims=-./" %%a in ("%date:~,10%") do (
  4.     set /a yy=%%a,mm=1%%b-100,dd=1%%c-100
  5. )
  6. type call_history_2013-08.csv >a.txt
  7. (for /f "tokens=1-7delims=;" %%a in ('findstr %yy%年%mm%月%dd%日 a.txt')do (
  8.     for /f %%i in ("%%~a") do echo,%%g %%i%tab%%%~c%tab%%%g
  9.     for /f "tokens=1-3 delims=:" %%i in ("%%g") do (
  10.         set /a h+=1%%i-100,m+=1%%j-100,s+=1%%k-100
  11.     )
  12. ))>$
  13. set /a k1=s/60,s=s%%60+100,m+=k1,k2=m/60,m=m%%60+100,h+=k2
  14. (
  15.     for /f "tokens=1*" %%a in ('sort /r ) do echo,%%b
  16.     echo,&echo,合计:%h%:%m:~1%:%s:~1%
  17. )>b.txt
  18. del $
  19. pause
复制代码

TOP

回复 7# 非常感谢


我这里测试没有问题

C:\>type call_history_2013-08.csv > a.txt

C:\>type a.txt

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

"2013年8月10日 23:10";"2013-08-02T23:10:57+00:00";"+861077777777";"China-Beijing";"通话";0.000;00:10:09;0.000;KRW
"2013年8月10日 23:10";"2013-08-02T23:10:39+00:00";"+861011111111";"China-Beijing";"通话";0.000;00:05:07;0.000;KRW
"2013年8月10日 23:10";"2013-08-02T23:10:22+00:00";"+861022222222";"China-Beijing";"通话";0.000;01:08:08;0.000;KRW
"2013年8月9日 23:10";"2013-08-02T23:10:57+00:00";"+8610333333333";"China-Beijing";"通话";0.000;00:19:09;0.000;KRW
"2013年8月9日 23:10";"2013-08-02T23:10:39+00:00";"+8610555555555";"China-Beijing";"通话";0.000;00:25:07;0.000;KRW
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 7# 非常感谢


    另外,请不要给我发私人消息了。你直接在我的回帖下面点击“回复”,论坛会自动通知我的。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

目测楼主测试失败的原因为:csv文件中没有今日的数据,也就是没有“2013年8月19日”的数据。
看得多说得多,远比不上写得多。

TOP

回复 8# terse
批处理后失败了,可不可以直接把call_history_2013-08.csv批处理后导出b.txt?

TOP

a.txt是正常的,cvs里面我加了19的日期。出现如下图,我想可不可以不分2步骤,直接把源文件call_history_2013-08.csv导出b.txt


回复 11# weichenxiehou

TOP

本帖最后由 weichenxiehou 于 2013-8-19 23:07 编辑

回复 13# 非常感谢
terse弄掉一个单引号:
  1. @echo off
  2. for /f "delims=U" %%a in ('cmd /u/c echo,唉') do set "tab=%%a"
  3. for /f "tokens=1-3delims=-./" %%a in ("%date:~,10%") do (
  4.     set /a yy=%%a,mm=1%%b-100,dd=1%%c-100
  5. )
  6. type call_history_2013-08.csv >a.txt
  7. (for /f "tokens=1-7delims=;" %%a in ('findstr %yy%年%mm%月%dd%日 a.txt')do (
  8.     for /f %%i in ("%%~a") do echo,%%g %%i%tab%%%~c%tab%%%g
  9.     for /f "tokens=1-3 delims=:" %%i in ("%%g") do (
  10.         set /a h+=1%%i-100,m+=1%%j-100,s+=1%%k-100
  11.     )
  12. ))>$
  13. set /a k1=s/60,s=s%%60+100,m+=k1,k2=m/60,m=m%%60+100,h+=k2
  14. (
  15.     for /f "tokens=1*" %%a in ('sort /r $') do echo,%%b
  16.     echo,&echo,合计:%h%:%m:~1%:%s:~1%
  17. )>b.txt
  18. del $
  19. pause
复制代码
看得多说得多,远比不上写得多。

TOP

本帖最后由 weichenxiehou 于 2013-8-19 23:08 编辑

我发现不是谁弄掉的,是论坛的问题,'sort /r $'最后两个字符会被去掉。

补:也不能算在论坛的问题上,从chrome切到ie后就可以了。
看得多说得多,远比不上写得多。

TOP

返回列表