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

时间:2014-10-13 15:48:42

标签: batch-file command-line vbscript delete-file dir

我们有这样的目录结构

.. \ Document Name_archive \ YYYY \ MonthName

所以我们有很多子文件夹(在不同的文档名称文件夹中),名为\ 2014 \ January ... etc

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

我们更喜欢使用批处理文件脚本,但如果我们需要递归搜索,可能更好的是VBScript。

请问最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

这是一个使用递归函数的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

使用forfiles命令查看this post批处理示例。