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

[文本处理] 将文本中的内容按要求格式化并按指定列的用时数排序和统计总用时数

本帖最后由 pcl_test 于 2017-4-30 23:04 编辑

批处理:当日合计
批处理前:
日期、时间 项目 类别 费率 已用量 信用点数金额*

9-26 08:55 +111111111111 , China  通话
  ? 0.000 00:00 ? 0.000
9-26 08:54 +222222222222 , China  通话
  ? 0.000 00:00 ? 0.000
9-26 08:52 +333333333333 , China  通话
  ? 0.000 11:11 ? 0.000
9-26 08:52 +444444444444 , China  通话
  ? 0.000 00:08 ? 0.000

批处理后:

2013年9月26日        +333333333333        00:11:11
2013年9月26日        +444444444444        00:00:08
2013年9月26日        +111111111111        00:00:00
2013年9月26日        +222222222222        00:00:00

合计:0:11:19

本帖最后由 batman 于 2013-9-26 21:05 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 delims=" %%a in (a.txt) do (
  3.   set /a n+=1
  4.   if not defined str (
  5.     for /f "tokens=1,2,4 delims=- " %%b in ("%%a") do set "str=%date:~,4%年%%b月%%c日 %%d"
  6.     ) else (
  7.     for /f "tokens=3,4 delims=: " %%b in ("%%a") do (
  8.       set "_%%b%%c_!n!=!str! %%b:%%c"&set "str="
  9.       set /a m+=1%%b %% 100,s+=1%%c %% 100
  10.       if !s! gtr 60 set /a s-=60,m+=1
  11.       if !m! gtr 60 set /a m-=60,h+=1
  12.     )
  13.   )
  14. )
  15. for /f "tokens=2 delims==" %%a in ('set _^|sort /r') do echo,%%a
  16. for %%a in (h m s) do set "%%a=00!%%a!"&set "%%a=!%%a:~-2!"
  17. echo,合计:%h%:%m%:%s%
  18. pause>nul      
复制代码
***共同提高***

TOP

回复 2# batman
可以修改成导出为b.txt吗?,
还有显示的时间格式不太对。(就是每个时间前面少00:)
2013年9月26日        +333333333333        11:11
2013年9月26日        +444444444444        00:08
2013年9月26日        +111111111111        00:00
2013年9月26日        +222222222222        00:00

合计:0:11:19
------------------------------------------
2013年9月26日        +333333333333        00:11:11
2013年9月26日        +444444444444        00:00:08
2013年9月26日        +111111111111        00:00:00
2013年9月26日        +222222222222        00:00:00

合计:0:11:19

TOP

不接待纯伸手党!
楼主在论坛发求助帖N个了,居然连写入文本都没学会,自己说说吧。。。
***共同提高***

TOP

本帖最后由 非常感谢 于 2013-9-27 07:57 编辑

回复 4# batman


    什么都不懂,什么都不会,发求助帖子就不行吗?说实话对批处理,本人是完全外行,但论坛有太多热心人,才愿意来,也比较喜欢论坛,查看了一下我所有的帖子,主题全部数量17个,算n个吧。在n个里面,  版主直接帮助回答的帖子并不是多数,怎么就变成了伸手党了呢?早上醒来,心里不太是滋味,版主叫我说说看,那我就说说,任何人一生掌握的东西都是有限的,有的人跑步行,不一定游泳厉害,或者是料理也行,再或者是乐器也懂,电脑硬件,软件,计算机语言厉害,不见得其他领域也有成就。发求助帖子,态度认真和诚恳就好了嘛,谁叫不懂呢,?又能怪谁呢?,但做为版主,管理论坛,是不是应该以宽容的心态,热心的态度和高超的技术维持呢,这个帖子,谁看到了,愿意帮就帮,啥也不说了,就说这么多,,,,,,

TOP

你可以先回顾一下这几个帖子,看看别人是如何写入文件的。
http://bbs.bathome.net/thread-26288-1-1.html
http://bbs.bathome.net/thread-26365-1-1.html
http://bbs.bathome.net/thread-25951-1-1.html
http://bbs.bathome.net/thread-25896-1-1.html
http://bbs.bathome.net/thread-25908-1-1.html
然后自己尝试一下。
如果搞不定的话,我可以帮忙修改。

TOP

本帖最后由 非常感谢 于 2013-9-27 12:08 编辑

回复 6# DAIC
基本都是最后加)>b.txt,我试过了都不成功。关键是看不懂,下了水,不会游泳,没办法。
把上面代码为a.bat,在cmd下执行 a.bat > b.txt  也能导出结果b.txt 但这不是理想办法,太麻烦!还有就是代码需要修改。(就是每个时间前面少00:)

TOP

回复 7# 非常感谢


echo命令是用来输出结果的
你在2楼代码的echo命令的行结尾加上>>b.txt
试试

TOP

回复 8# DAIC

试过不行,还有2楼代码输出时间格式少00:
您可以用主题里的内容和代码一起试验一下,谢谢!!

TOP

回复 9# 非常感谢
难度到不是很大 只是按给出的范例处理后是否还有后续问题
比如如果一个文本有多个号码是全部显示吗
以及文本里只有当天的信息 还是只处理当天信息 有不是当天的信息吗
小时数会超过2位数不? (文本并没显示小时)

TOP

回复 9# 非常感谢


请把你修改过的代码贴出来看看,我帮你改。

TOP

本帖最后由 batman 于 2013-9-27 13:09 编辑

我算是看透了你们这种不爱动脑子的伸手党。。。
输出少了00:,这个很容易在代码中加上的,但是按你原来的文本格式,这个有意义?
重定向到文本是批基础中的基础,你如果是头一两次发帖,你不会,我可以理解,发了这么多求助帖还不会,只说明了一个问题,你只要100%达到自己的要求,至于别人怎么实现你不管也不去想,更谈不上学习,只是在这里把自己当社会上的“甲”方看?
对不起,本人乐于助人,但不乐于助懒人,更不乐于助狂人。。。
2

评分人数

    • ivor: 版主我顶你技术 + 1
    • foxJL: 不乐于助懒人.赞同PB + 5
***共同提高***

TOP

赞成batman的说法,我想当初站长建立论坛旨在为批处理爱好者提供一个讨论的地方,而不是为有需求的人免费提供代码。如果你是批处理爱好者大家共同探讨我们都热烈欢迎,如果只是单纯要代码,请去隔壁『有偿求助区』发贴求助。

TOP

回复 10# terse
1.是当天的,txt里看了一下批处理前是1000多行,批处理后当然是几百行了。
2.为什么需要00:,因为当日合计后,对b.txt还需要提取无效号码,就是您以前给的批处理,如果不是这个格式00:00:00,无法提取无效号码。

TOP

本帖最后由 非常感谢 于 2013-9-27 15:14 编辑

回复 12# batman

本人都表达了完全是零基础,根本就看不懂代码,您说懒,懒是对有能力,而不去做的人吧,您说不爱动脑子,根本就没有思路,看不懂怎么修改代码。(输出少了00:,这个很容易在代码中加上的)这个对您来讲易如反掌,对我而言根本就不知道在哪里加和怎么加,百度了几个小时,没找到答案。两位版主的想法--我也不想去否定,只是每个人的立场不一样,我只能说您愿意帮就帮,不帮我也不说什么,如果您的批评对我有提高脚本知识的话,那我谢谢您!这个帖子没想到变的越来越奇怪了,,,学习是渐进的,对于刚学会爬的小孩,要求他走路或跑,不太适合,这是我的观点。学批处理我连爬也是刚开始,,,,,,,不多说了。

TOP

返回列表