Тема: VBScript: удаление файлов старше N количества дней
Как это скрипт передалать,чтобы было больше одного пути для удаления?допустим сколько захочу!
' ----------
' Начало основной секции. Отсюда начнется выполнение при запуске скрипта.
Set FSO = CreateObject("Scripting.FileSystemObject")
' директория, где будут храниться бэкапы. Вы должны вписать свою директорию
' вместо "X:\DailyBackup"
sDir = "D:\backup"
Set objDir = GetFolder(sDir)
DeleteOlderFiles(objDir)
' ---------- Секция функций
' Получить файл
Function GetFile(sFile)
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
Set GetFile = FSO.GetFile(sFile)
if err.number <> 0 then
WScript.Echo "Error Opening file " & sFile & VBlf & "["&Err.Description&"]"
Wscript.Quit Err.number
end if
End Function
' Получить папку
Function GetFolder (sFolder)
On Error Resume Next
Set GetFolder = FSO.GetFolder(sFolder)
if err.number <> 0 then
WScript.Echo "Error Opening folder " & sFolder & VBlf & "["&Err.Description&"]"
Wscript.Quit Err.number
end if
End Function
' удалить один файл (имя файла передается в sFile)
Sub DeleteFile(sFile)
On Error Resume Next
FSO.DeleteFile sFile, True
if err.number <> 0 then
WScript.Echo "Error Deleteing file " & sFile & VBlf & "["&Err.Description&"]"
Wscript.Quit Err.number
end if
End Sub
' Удалить файлы старше 7 дней
Sub DeleteOlderFiles(objDir)
' просматриваем все файлы в директории
for each efile in objDir.Files
' используем DateLastModified, а не DateCreated, поскольку
' DateCreated не всегда возвращает правильную дату
FileDate = efile.DateLastModified
Age = DateDiff("d",Now,FileDate)
' в данном случае возраст файла не больше семи дней
If Abs(Age)>7 Then
DeleteFile(efile)
End If
next
End Sub
