我对 vb 脚本非常陌生,我需要一个脚本来根据起始名称 _SA 和 2 天前删除几个第三级子文件夹
例子
C:\abc\user1\temp\ _SA123 c:\abc\user2\temp_SA2345 c:\abc\user3\temp_SA4567
我想删除以 _SA 开头的超过 2 天的文件夹,并且我有 50 多个用户文件夹。请帮忙
谢谢,辣椒
我对 vb 脚本非常陌生,我需要一个脚本来根据起始名称 _SA 和 2 天前删除几个第三级子文件夹
例子
C:\abc\user1\temp\ _SA123 c:\abc\user2\temp_SA2345 c:\abc\user3\temp_SA4567
我想删除以 _SA 开头的超过 2 天的文件夹,并且我有 50 多个用户文件夹。请帮忙
谢谢,辣椒
根据示例数据,尽管我认为这是第 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 个字符长)并且如果您没有权限,将被拒绝权限。
注意:我发布的代码有缩进,只是由于某种原因不显示。如果您想查看缩进的代码,请点击编辑按钮。