我只需将那些子文件夹从文件夹A移动到30天之后的文件夹B.如果文件夹B已包含与正在移动的文件夹同名的文件夹,则使用_1重命名要移动的文件夹,或者只是不移动文件夹。我到目前为止的代码是:
set fso = CreateObject("Scripting.FileSystemObject")
set objFol = fso.GetFolder("T:\Collections\PPA\Cecelia Nero")
set objSubFolders = objFol.SubFolders
set fso2 = CreateObject("Scripting.FileSystemObject")
set Dest = fso2.GetFolder("T:\Collections\PPA General\")
For each folder in objSubFolders
If not fso.FolderExists(Dest) Then
If DateDiff("d", folder.DateLastModified, Now) > 30 Then
fso.Movefolder folder, "T:\Collections\PPA General\"
end if
end if
Next
答案 0 :(得分:0)
If not fso.FolderExists(Dest) Then
此检查不符合您的预期。您想要验证目标文件夹中不存在要复制的文件夹,但上面的行仅检查目标文件夹本身是否不存在。将其改为:
If Not fso.FolderExists(fso.BuildPath(Dest.Path, folder.Name)) Then
如果已存在具有相同名称的目标文件夹,则为了将数字附加到复制的文件夹,您可以执行以下操作:
For Each sf In objFol.SubFolders
If DateDiff("d", folder.DateLastModified, Now) > 30 Then
destFolder = fso.BuildPath(Dest.Path, sf.Name)
i = 0
Do While fso.FolderExists(destFolder)
i = i + 1
destFolder = fso.BuildPath(Dest.Path, sf.Name & "_" & i)
Loop
sf.Move destFolder
Next