Hello! This script runs through and deletes files based on older than a certain date. It is on a backup server where files get deleted after 15 days (based on last modified date). I also restore files sometimes that are needed for 7 days and then need to be deleted (based on last accessed date). The script is self explanatory even without comments. I need to be able to replace my For Each statement with something that will work like it would if the dtexcept was an array. I sure hope this makes sense. Thanks in advance for your help.
dteCheck = Dateadd("d",-15,Date)
dtexcept = DateAdd("d",-7,Date)
Set objFileSys=CreateObject("scripting.filesystemobject")
set objFolder = objfilesys.GetFolder ("C:\Archive\blogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\elogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\llogger")
doFolder objFolder
Set objFolder = objfilesys.GetFolder ("C:\Archive\plogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\rlogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\mlogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\slogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\wlogger")
doFolder objFolder
Sub doFolder(myFolder)
set objFiles = myFolder.files
for each objfile in objFiles
If objfile.datelastmodified < dtecheck Then
booDel = True
For Each dtex In dtexcept
If datevalue(objfile.datelastaccessed) >= datevalue(dtex) Then
booDel = False: Exit For
End If
Next
If booDel Then objfile.Delete
End If
next
set objFolders = myFolder.subfolders
for each objFolder2 in objfolders
doFolder objfolder2
next
end Sub
dteCheck = Dateadd("d",-15,Date)
dtexcept = DateAdd("d",-7,Date)
Set objFileSys=CreateObject("scripting.filesystemobject")
set objFolder = objfilesys.GetFolder ("C:\Archive\blogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\elogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\llogger")
doFolder objFolder
Set objFolder = objfilesys.GetFolder ("C:\Archive\plogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\rlogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\mlogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\slogger")
doFolder objFolder
set objFolder = objfilesys.GetFolder ("C:\Archive\wlogger")
doFolder objFolder
Sub doFolder(myFolder)
set objFiles = myFolder.files
for each objfile in objFiles
If objfile.datelastmodified < dtecheck Then
booDel = True
For Each dtex In dtexcept
If datevalue(objfile.datelastaccessed) >= datevalue(dtex) Then
booDel = False: Exit For
End If
Next
If booDel Then objfile.Delete
End If
next
set objFolders = myFolder.subfolders
for each objFolder2 in objfolders
doFolder objfolder2
next
end Sub