[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

回复 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

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

回复 4# batman


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

TOP

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

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

TOP

回复 8# DAIC

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

TOP

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

TOP

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

回复 12# batman

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

TOP

本帖最后由 foxJL 于 2013-9-27 15:32 编辑

回复 8# DAIC
  1. @echo off >b.txt
  2. @echo off&setlocal enabledelayedexpansion
  3. for /f "skip=1 delims=" %%a in (a.txt) do (
  4.   set /a n+=1
  5.   if not defined str (
  6.     for /f "tokens=1,2,4 delims=- " %%b in ("%%a") do set "str=%date:~,4%年%%b月%%c日 %%d"
  7.     ) else (
  8.     for /f "tokens=3,4 delims=: " %%b in ("%%a") do (
  9.       set "_%%b%%c_!n!=!str! %%b:%%c"&set "str="
  10.       set /a m+=1%%b %% 100,s+=1%%c %% 100
  11.       if !s! gtr 60 set /a s-=60,m+=1
  12.       if !m! gtr 60 set /a m-=60,h+=1
  13.     )
  14.   )
  15. )
  16. for /f "tokens=2 delims==" %%a in ('set _^|sort /r') do echo,%%a
  17. for %%a in (h m s) do set "%%a=00!%%a!"&set "%%a=!%%a:~-2!"
  18. echo,合计:%h%:%m%:%s% >>b.txt
  19. pause>nul
复制代码

TOP

回复 17# batman


    我相信这个帖子会让我学会重定向,再过1,2年也能看懂您写的代码(不是难度大的)就可以了,,,,

TOP

回复 16# terse
2013年9月26日 +333333333333 11:11
2013年9月26日 +444444444444 00:08
2013年9月26日 +222222222222 00:00
2013年9月26日 +111111111111 00:00
合计:00:11:19

---------------------------------------
用主题里的4个号码做了测试,,,估计是时间格式00:00:00问题     提取无效号码后的图片

TOP

回复 21# DAIC

谢谢您,2楼脚本的导出b.txt学会了,,,,,,今天真高兴。也谢谢batman.
>>b.txt

TOP

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

回复 24# terse

http://www.bathome.net/viewthread.php?tid=26288&highlight=

无效号码的标准是。一个号码的打3遍,通1遍,2遍不通算有效号码。打3遍,3遍不通算无效。脚本您以前给过了。上面是地址
下面是您给的代码:代码第五行去掉00:就可以用了。
@echo off&setlocal enabledelayedexpansion
if "%~1" == "" (
        set /a m=n=0
        (for /f "tokens=1-3" %%a in ('%~s0 #‘) do (
                if "%%a" == "00:00:00" (
                        if not defined %%c set /a n+=1&echo %%b %%c %%a
                ) else         for /f "tokens=1-3 delims=:" %%i in ("%%a") do (
                                set /a hh+=1%%i-100,mm+=1%%j-100,ss+=1%%k-100
                                if not defined %%c set /a m+=1
                        )
                                set %%c=a
        )
        echo 合计无效号码数:!n! 个&echo 合计有效号码数:!m! 个)>b.txt
        pause&exit
) else (for /f "tokens=1-3" %%i in (a.txt) do @if not %%k# == # @echo %%k %%i %%j)|sort /r

  --------------------------------------------------------------------------------------------------------
谢谢您!!!

TOP

返回列表