找回密码
 加入
搜索
查看: 2183|回复: 6

[系统综合] [已解决]关于压缩归档的问题

  [复制链接]
发表于 2012-3-14 22:38:10 | 显示全部楼层 |阅读模式
本帖最后由 fuinei 于 2012-3-15 23:20 编辑

各位好,如果FolderA中有多个以年月日命名的文件夹(如201203014等),如需把FolderA中的文件夹使用WinRAR压缩备份至FolderB后删除FolderA中除最近创建的3个文件夹外的其它文件夹,请问使用AU3可实现吗?
发表于 2012-3-14 23:24:15 | 显示全部楼层
回复 1# fuinei


WinRAR有DOS命令打包文件,然后FileCopy到FolderB,然后遍历文件用FileGetTime加判断做删除动作
发表于 2012-3-14 23:43:43 | 显示全部楼层
楼主,提问多了点…
自己研究才更有进步
发表于 2012-3-15 00:04:48 | 显示全部楼层

#include <Array.au3>
#include <File.au3>
$FolderA = "D:\aaa"
$FolderB = "D:\bbb"
$A_list = _FileListToArray($FolderA, "*", 2)
For $i = 1 To $A_list[0]
        RunWait("C:\Program Files\WinRAR\WinRAR.exe a -ep1 -r " & $FolderB & "\" & $A_list[$i] & ".rar " & $FolderA & "\" & $A_list[$i], "", @SW_HIDE )
Next
_ArrayDisplay($A_list,"unsorted")
_ArraySort($A_list, 0, 1, $A_list[0])
_ArrayDisplay($A_list,"sorted")
For $i = 1 To $A_list[0]-3
        DirRemove($FolderA & "\" & $A_list[$i], 1)
Next
 楼主| 发表于 2012-3-15 08:55:41 | 显示全部楼层
谢谢AFAN版主的提醒和4楼veket_linux的指导,对于这个问题我的主要疑惑点在于如果判断文件夹的新旧(仅保留最新的3个文件夹),原计划使用filegettime来获取,但从返回结果中暂时没有想来比较好的比较文件夹创建时间的方法,如果大家有什么好的方法/思路请指导,谢谢!
发表于 2012-3-15 18:18:42 | 显示全部楼层
调用一下DOS命令,dir /ad/o-d/b
 楼主| 发表于 2012-3-15 23:19:18 | 显示全部楼层
经测试,veket_linux兄提供的方式可实现需求
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-1 10:50 , Processed in 0.083242 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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