请教,一个FTP监控软件生成的文件,如果根据TXT里的内容对文件进行重命名
本帖最后由 zz999 于 2012-7-8 23:32 编辑每当用户上传一个文件的时候,监控软件,会自动生成一个001_iis_log.txt,后面跟着一个001.ZIP
第二个就是002_iis_log.txt,后面跟着一个002.zip
TXT里的内容是苏特上传:
D:\我的文档\桌面\King.jpg我想实现个功能就是,自动读取该目录下的,所有00*_iis_log.txt的第二行,最后的文件名,然后将ZIP文件,重命名为这个TXT里写的文件名
比如,苏特上传了king.jpg
那么读取了001_iis_log.txt的文件名后,将001.zip重命名为king.jpg
依次类推,直到该目录下的最后一个00*_iis_log.txt
请教高手帮忙,给个核心代码参考! 正是au3所擅长的,也应该容易实现。
不过至少自己先思考一下吧,做伸手党对你对大家都没啥好处。{:face (427):} 回复 2# ashfinal
我想写,但是,但是,我不会用循环,天生没语言天赋啊! 循环语句是任何一门编程语言的基本语句吧,先去搞懂吧。否则楼主想解决这个问题有点儿悬,缺得知识太多了! 这个帮助有说明么! #include <File.au3>
Local $sDir = @ScriptDir & '\test\' ;测试文件夹
Local $aFLs = _FileListToArray($sDir, '*_iis_log.txt', 1)
If @error Then Exit MsgBox(48, '', '未发现 *_iis_log.txt 文件')
Local $iFile = '', $FileName = '', $nTotal = 0, $sInfo = ''
For $i = 1 To $aFLs
$iFile = StringRegExpReplace($aFLs[$i], '^(\d+).*', '$1')
$FileName = StringRegExpReplace(FileRead($sDir & $aFLs[$i]), '^.+\n.+?\\([^\\\v]+)(?:\r|$).*', '$1')
If FileMove($sDir & $iFile & '.zip', $sDir & $FileName) Then
$nTotal += 1
$sInfo &= $sDir & $iFile & '.zip ---> ' & $sDir & $FileName & @CRLF
EndIf
Next
MsgBox(64, '完成 ' & $nTotal & ' 组', $sInfo) 回复 6# afan
谢谢A大,你这这里的神,先谢谢,晚上下班回家测试。 回复 7# zz999
你所有主题帖(37个)都是提问帖,竟然没有一个标注“已解决”,限今日加注,不然就要扣分扣到解放前了。 A版果然很牛,,一觉睡醒登录论坛看看,,谁知积分已经回到解放前了。。
页:
[1]