четверг, 28 февраля 2008 г.

Скрипт для очистки папок

Скрипт для очистки папок в OS Windows

Этому скрипту есть масса применений,
Например:
  • чистить темповские папки
  • чистить логи
  • очищать от порнухи файловый сервер
  • еще мне нужно подчищать папки Kerio от темповских файлов и от файлов кот. на карантине
  • и еще за MDaemon-ом нужно чистить разные папки в кот. собирается почта
Работает он так "Если в папке c:\temp есть файл с расширением *.exe и он старше 7-ми дней - УДАЛИТЬ :)"



Вот собственно сам скрипт:

Set filesys = CreateObject("Scripting.FileSystemObject")
Set objFolder = filesys.GetFolder("c:\temp\")
For Each File in objFolder.Files
If LCase(filesys.GetExtensionName(File)) = "exe" AND _
DateDiff("D", File.DateLastModified, Now) > 7 Then
File.Delete true
End If
Next


Его нужно скопировать в текстовый документ и сохранить с расширением *.vbs
далее необходимо подредактировать его. Вместо "c:\temp\" - пишите свой путь к папке, которую необходимо просматривать. Вместо "exe" - необходимое расширение, "> 7 Then" количество дней, тоже поставить по вкусу и запускать планировщиком каждую ночь.

Всё!!!

3 комментария:

  1. а вложенные папки просматривает ?

    ОтветитьУдалить
  2. вот это чистит все вложенные папки, но сами папки удаляет.. влом писать было для папок :)

    On Error Resume Next

    Const USER_PROFILE = &H28&

    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(USER_PROFILE)
    Set objFolderItem = objFolder.Self
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objParentFolder = objFSO.GetFolder(objFolderItem.Path+"\Local Settings\Temp\")

    ClearFolder objParentFolder

    Sub ClearFolder(CurFolder)
    On error resume next

    For Each File in CurFolder.Files
    File.Delete true
    Next
    For Each SubCurFolder in CurFolder.SubFolders
    Set objSubFolder = objFSO.GetFolder(SubCurFolder.Path)
    ClearFolder SubCurFolder
    Next
    End Sub

    ОтветитьУдалить
  3. правда строку
    File.Delete true
    желательно засунуть тоже в процедуру, со первой строкой в нем
    On error resume next

    иначе при первой же ошибке удаления файла в какой либо папке (а такое часто случается в temp) скрипт будет переходить сразу к следующей папке (а не файлу)

    ОтветитьУдалить