Я создал нижеприведенный скрипт, который управляет и поддерживает выделенное хранилище в RootFolder, в котором хранятся ежедневные резервные копии, каждая из которых находится в отдельной посеянной папке, и если содержание RootFolder превышает заданный предел, тогда самая старая папка резервной копиизатем удалил.
Пока все хорошо. ,,у меня проблема в том, что файлы большого размера также могут быть добавлены в RootFolder [strHomeFolder] и, как таковые, также включены в общий накопленный «размер». Как следствие, папки для резервных копий могут быть преждевременно удалены, и в худшем случае все могут быть удалены полностью, что, к сожалению, может несколько отменить цель создания резервных копий!
Поэтому я ищу совет при создании objFSO. GetFolder проверяет только содержимое всех резервных папок, расположенных в RootFolder, игнорируя при этом любые файлы на этом уровне.
strOldestFolder = ""
dtmOldestDate = Now
Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%\HDBackups")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strHomeFolder)
intFolderSize = Int((objFolder.Size / 1024) / 1024)
If intFolderSize >= 50 Then ' change as appropriate value in MBytes
Set objSubFolders = objFolder.SubFolders
For Each objFolder in objSubFolders
strFolder = objFolder.Path
dtmFolderDate = objFolder.DateCreated
If dtmFolderDate < dtmOldestDate Then
dtmOldestDate = dtmFolderDate
strOldestFolder = strFolder
End If
Next
objFSO.DeleteFolder(strOldestFolder)
End If