fuinei 发表于 2012-3-14 22:38:10

[已解决]关于压缩归档的问题

本帖最后由 fuinei 于 2012-3-15 23:20 编辑

各位好,如果FolderA中有多个以年月日命名的文件夹(如201203014等),如需把FolderA中的文件夹使用WinRAR压缩备份至FolderB后删除FolderA中除最近创建的3个文件夹外的其它文件夹,请问使用AU3可实现吗?

502762378 发表于 2012-3-14 23:24:15

回复 1# fuinei


WinRAR有DOS命令打包文件,然后FileCopy到FolderB,然后遍历文件用FileGetTime加判断做删除动作

afan 发表于 2012-3-14 23:43:43

楼主,提问多了点…
自己研究才更有进步

veket_linux 发表于 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
        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)
_ArrayDisplay($A_list,"sorted")
For $i = 1 To $A_list-3
        DirRemove($FolderA & "\" & $A_list[$i], 1)
Next

fuinei 发表于 2012-3-15 08:55:41

谢谢AFAN版主的提醒和4楼veket_linux的指导,对于这个问题我的主要疑惑点在于如果判断文件夹的新旧(仅保留最新的3个文件夹),原计划使用filegettime来获取,但从返回结果中暂时没有想来比较好的比较文件夹创建时间的方法,如果大家有什么好的方法/思路请指导,谢谢!

h20040606 发表于 2012-3-15 18:18:42

调用一下DOS命令,dir /ad/o-d/b

fuinei 发表于 2012-3-15 23:19:18

经测试,veket_linux兄提供的方式可实现需求
页: [1]
查看完整版本: [已解决]关于压缩归档的问题