我是vb脚本的新手,我需要一个脚本来删除几个基于起始名称_SA和2天的第三级子文件夹
例如
C:\ abc \ user1 \ temp \ _SA123 C:\ ABC \用户2 \ temp_SA2345 C:\ ABC \用户3 \ temp_SA4567
我想删除以_SA超过2天开头的文件夹,我有50多个用户文件夹。请hlep
谢谢, 辣椒
答案 0 :(得分: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个字符之外),如果您没有权限,将获得权限拒绝。
注意:我发布的代码有缩进,只是因为某种原因没有显示。如果要查看缩进代码,请单击编辑按钮。