Накатал скрипт на VBScript для удаления старых файлов (в моем случае - накапливающихся бэкапов). Удаляет все файлы старше указанного количества дней из указанной директории. Также рекурсивно удаляются все её подпапки, не содержащие файлов, измененных после указанной даты.
'* deleteoldbackups.vbs
'* Создан: 07/12/2012
'* Назначение: Удаляет файлы и папки старше NumOfDays дней
'Переменные для настройки
NumOfDays = 15 'число дней, все что старше - будет удалено
StartFolderPath = "X:\OLDBACKUPS" 'Путь к папке с которой будет начинаться удаление файлов и папок
'Перехват и обработка ошибок
On Error Resume Next
Dim fso
Dim objFolder
Dim objFile
Dim objSubfolder
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(StartFolderPath)
DeleteOldFilesAndFolders(objFolder)
'Функция рекурсивно удаляет старые файлы и пустые папки из переданной в параметре директории
Function DeleteOldFilesAndFolders(Folder)
'сначала удаляем все старые файлы в папке старше NumOfDays
for each objFile in Folder.Files
if DateDiff("d", objFile.DateLastModified, Now) > NumOfDays Then
objFile.Delete true
end if
next
'удаляем пустые директории
for each objSubfolder in Folder.Subfolders
if objSubfolder.Files.Count = 0
objSubfolder.Delete true
end if
'Повторяем для подпапок
for each objSubfolder in Folder.Subfolders
DeleteOldFilesAndFolders(objSubfolder)
next
End Function
Спасибо, Бро!
ОтветитьУдалитьСпасибо, работает. next один потерялся и then)) где удаляются пустые директории
ОтветитьУдалить