2

我对 vb 脚本非常陌生,我需要一个脚本来根据起始名称 _SA 和 2 天前删除几个第三级子文件夹

例子

C:\abc\user1\temp\ _SA123 c:\abc\user2\temp_SA2345 c:\abc\user3\temp_SA4567

我想删除以 _SA 开头的超过 2 天的文件夹,并且我有 50 多个用户文件夹。请帮忙

谢谢,辣椒

4

1 回答 1

0

根据示例数据,尽管我认为这是第 4 级,但这应该可以工作:

编辑:因为您问得很好,所以我更新了它以在变量中构建一个日志,该变量将列出已删除文件夹的路径、创建日期以及删除日期。此信息显示在 msgbox 中,但您可以轻松修改以将数据打印到文件中。

Dim rootFolder
Dim fld
Dim subFld
Dim subsubFld
Dim Log
Set fso = CreateObject("Scripting.FileSystemObject")
Set rootFolder = fso.GetFolder("C:\abc\")
For Each fld In rootFolder.SubFolders
    For Each subFld In fld.SubFolders
        For Each subsubFld In subFld.SubFolders
            If Len(subsubFld.Name) >= 3 Then
                If Left(subsubFld.Name, 3) = "_SA" And subsubFld.DateCreated < Now() - 2 Then
                    Log = subsubFld.Path & ", Created " & subsubFld.DateCreated & ",Deleted" & Now & vbNewLine
                    subsubFld.Delete
                End If
            End If
        Next
    Next
Next
MsgBox Log
'Or you could print the log to a file.

它没有错误捕获,(除了确保文件夹名称至少有 3 个字符长)并且如果您没有权限,将被拒绝权限。

注意:我发布的代码有缩进,只是由于某种原因不显示。如果您想查看缩进的代码,请点击编辑按钮。

于 2012-10-26T17:51:39.000 回答