找回密码
 加入
搜索
查看: 3289|回复: 8

[系统综合] 请教,一个FTP监控软件生成的文件,如果根据TXT里的内容对文件进行重命名

  [复制链接]
发表于 2012-7-8 23:29:07 | 显示全部楼层 |阅读模式
本帖最后由 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

请教高手帮忙,给个核心代码参考!
发表于 2012-7-9 07:59:22 | 显示全部楼层
正是au3所擅长的,也应该容易实现。

不过至少自己先思考一下吧,做伸手党对你对大家都没啥好处。
 楼主| 发表于 2012-7-9 09:56:30 | 显示全部楼层
回复 2# ashfinal


我想写,但是,但是,我不会用循环,天生没语言天赋啊!
发表于 2012-7-9 10:21:51 | 显示全部楼层
循环语句是任何一门编程语言的基本语句吧,先去搞懂吧。否则楼主想解决这个问题有点儿悬,缺得知识太多了!
发表于 2012-7-9 11:03:12 | 显示全部楼层
这个帮助有说明么!
发表于 2012-7-9 11:24:58 | 显示全部楼层
#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[0]
        $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)
 楼主| 发表于 2012-7-9 12:06:01 | 显示全部楼层
回复 6# afan


    谢谢A大,你这这里的神,先谢谢,晚上下班回家测试。
发表于 2012-7-11 09:58:01 | 显示全部楼层
回复 7# zz999


    你所有主题帖(37个)都是提问帖,竟然没有一个标注“已解决”,限今日加注,不然就要扣分扣到解放前了。
发表于 2012-7-11 10:37:51 | 显示全部楼层
A版果然很牛,,一觉睡醒登录论坛看看,,谁知积分已经回到解放前了。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 21:46 , Processed in 0.088128 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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