找回密码
 加入
搜索
查看: 3570|回复: 9

[AU3基础] 提取log日志中一定格式的内容(已解决)

  [复制链接]
发表于 2011-1-23 00:30:43 | 显示全部楼层 |阅读模式
本帖最后由 dearmb 于 2011-1-26 14:30 编辑

想用fastcopy做一个拷贝工具
fastcopy拷贝生成的日志,有很多我不想要的内容,比如下面的日志
我想读取源log日志,过滤掉没用的信息,比如,下面第2行的时间,第5行的目标,第17行的结果,第20行的时间,第23行的目标,第35行的结果……变成下面的一个新日志,给点提示吧……

2011/01/23 00:11:52 <目标> d:\9 结果: (错误文件: 0 | 错误目录: 0)
2011/01/23 00:12:04 <目标> d:\10 结果: (错误文件: 0 | 错误目录: 0)
……

-------------------------------------------------
FastCopy(ver1.84) 开始于 2011/01/23 00:11:52

<源目录>  F:\电影\[电影天堂www.dygod.com].不信地狱-cd1.rmvb
<目标> d:\9
<命令> 同步 - 若重名,则仅复制大小时间不同的文件

无错误

总计读取 = 203.9 MB
总计写入 = 203.9 MB
总计文件 = 1 (0)
总计时间 = 11.63 秒
传输速率 = 17.54 MB/秒
传输文件 = 0.09 文件/秒

结果: (错误文件: 0 | 错误目录: 0)

-------------------------------------------------
FastCopy(ver1.84) 开始于 2011/01/23 00:12:04

<源目录>  F:\电影\[电影天堂www.dygod.com].不信地狱-cd1.rmvb
<目标> d:\10
<命令> 同步 - 若重名,则仅复制大小时间不同的文件

无错误

总计读取 = 203.9 MB
总计写入 = 203.9 MB
总计文件 = 1 (0)
总计时间 = 9.80 秒
传输速率 = 20.82 MB/秒
传输文件 = 0.10 文件/秒

结果: (错误文件: 0 | 错误目录: 0)
……
发表于 2011-1-23 02:42:36 | 显示全部楼层
_FileReadToArray  读文件到一个数组,跟据每一行的关键字对比,获得你想要的内容
发表于 2011-1-23 11:25:50 | 显示全部楼层
给你一个终极办法,你可以试着修改fastcopy的源代码,然后重新编译
发表于 2011-1-23 15:40:19 | 显示全部楼层
本帖最后由 smartzbs 于 2011-1-23 15:42 编辑

我这个是笨办法:
#include <Array.au3>

$sFile = "FastCopy.Log"
$sRead = FileRead($sFile, FileGetSize($sFile))

$aDate = StringRegExp($sRead, "(开始于.+)(?:\r)", 3);不含换行
$aSource = StringRegExp($sRead, "(<目标> .+)(?:\r)", 3);不含换行
$aDesk = StringRegExp($sRead, "(结果:.+)", 3);含换行

If BitAND(UBound($aDate)>0, UBound($aDate) = UBound($aSource), UBound($aSource) = UBound($aDesk)) Then
        Local $aRe[UBound($aDate)]
        For $i = 0 To UBound($aRe)-1
                $aRe[$i] = $aDate[$i] &" "& $aSource[$i] &" "& $aDesk[$i];" "表示用空格隔开,你爱用什么隔开就用什么
        Next
        ConsoleWrite(_ArrayToString($aRe, ""))
Else
        MsgBox(0,"error", "没有记录数据,或格式不对")
EndIf
发表于 2011-1-23 20:53:51 | 显示全部楼层
FastCopy能对比同步不?
 楼主| 发表于 2011-1-25 22:10:25 | 显示全部楼层
给你一个终极办法,你可以试着修改fastcopy的源代码,然后重新编译
蜘蛛抱蛋 发表于 2011-1-23 11:25



这办法谁都能想出来……也是最难的……
 楼主| 发表于 2011-1-25 22:11:35 | 显示全部楼层
我这个是笨办法:
#include

$sFile = "FastCopy.Log"
$sRead = FileRead($sFile, FileGetSize($sFile) ...
smartzbs 发表于 2011-1-23 15:40


正则?不懂。
估计我就检测一下从左数几个字母而已
 楼主| 发表于 2011-1-25 22:12:08 | 显示全部楼层
FastCopy能对比同步不?
libosir 发表于 2011-1-23 20:53



    什么意思?
发表于 2011-1-25 23:07:03 | 显示全部楼层
Local $Str = _
                '-------------------------------------------------' & @CRLF & _
                'FastCopy(ver1.84) 开始于 2011/01/23 00:11:52' & @CRLF & @CRLF & _
                '<源目录>  F:\电影\[电影天堂www.dygod.com].不信地狱-cd1.rmvb' & @CRLF & _
                '<目标> d:\9' & @CRLF & _
                '<命令> 同步 - 若重名,则仅复制大小时间不同的文件' & @CRLF & @CRLF & _
                '无错误' & @CRLF & @CRLF & _
                '总计读取 = 203.9 MB' & @CRLF & _
                '总计写入 = 203.9 MB' & @CRLF & _
                '总计文件 = 1 (0)' & @CRLF & _
                '总计时间 = 11.63 秒' & @CRLF & _
                '传输速率 = 17.54 MB/秒' & @CRLF & _
                '传输文件 = 0.09 文件/秒' & @CRLF & @CRLF & _
                '结果: (错误文件: 0 | 错误目录: 0)' & @CRLF & @CRLF & _
                '-------------------------------------------------' & @CRLF & _
                'FastCopy(ver1.84) 开始于 2011/01/23 00:12:04' & @CRLF & @CRLF & _
                '<源目录>  F:\电影\[电影天堂www.dygod.com].不信地狱-cd1.rmvb' & @CRLF & _
                '<目标> d:\10' & @CRLF & _
                '<命令> 同步 - 若重名,则仅复制大小时间不同的文件' & @CRLF & @CRLF & _
                '无错误' & @CRLF & @CRLF & _
                '总计读取 = 203.9 MB' & @CRLF & _
                '总计写入 = 203.9 MB' & @CRLF & _
                '总计文件 = 1 (0)' & @CRLF & _
                '总计时间 = 9.80 秒' & @CRLF & _
                '传输速率 = 20.82 MB/秒' & @CRLF & _
                '传输文件 = 0.10 文件/秒' & @CRLF & @CRLF & _
                '结果: (错误文件: 0 | 错误目录: 0)'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(?s).+?\nFastCopy.+?开始于\h(\V+)\v+.+?\n(<目标>\V+).+?\n(结果\V+(?:\r\n|$))', '$1 $2 $3')
MsgBox(0, '提取结果', $Test)
 楼主| 发表于 2011-1-26 14:29:48 | 显示全部楼层
回复 9# afan


    谢谢,就是……看不懂……唉……还得学习……
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 16:20 , Processed in 0.084175 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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