递归搜索子文件夹并删除子文件夹中超过6个月的所有文件

Our*_*nas 2 vbscript command-line batch-file dir delete-file

我们有这样的目录结构

..\文档名称_存档\YYYY\月份名称

例如,我们有许多子文件夹(在不同的文档名称文件夹中),名为 \2014\January ... 等

我们想要删除创建日期超过 180 天的所有文件夹及其内容。

我们更愿意只使用批处理文件脚本,但如果我们需要递归搜索,也许 VBScript 更好。

请问最好的办法是什么?

Bon*_*ond 5

下面是一个使用递归函数的 VBScript 解决方案。

' Global FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")

' Start at the root
DoFolder "c:\document_root\"

' Recursive function
Sub DoFolder(strFolder)

    With objFSO.GetFolder(strFolder)

        For Each objFile In .Files
            If objFile.DateCreated < Date - 180 Then objFile.Delete
        Next

        For Each objFolder In .SubFolders
            DoFolder objFolder.Path
        Next

        ' Checked every file and subfolder. If this folder is empty, remove it...
        If .Files.Count = 0 Then If .SubFolders.Count = 0 Then .Delete

    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

有关使用该命令的批处理示例,请参阅这篇文章forfiles