Войти

Показать полную графическую версию : [решено] Удаление файлов старше N дней


DOCznet
26-09-2012, 16:40
Тема, наверняка, избитая, но поиск не отразил нужной мне инфы, посему создал тему.

Необходим отсчет дней по штампу создания, а не последнего изменения, что везде предлагается. Как это сделать?

нашел вот это (ну собсно первая сссылка в поисковике):

http://pokatashkin.com/archives/40

Годны, быстрый, короткий скрипт, но отсчет он ведет по дате последнего изменения. Не владею VBS и банальная замена file.datelastmodified на file.datecreated оказалась безрезультатной.

При использовании forfiles.exe отсчет так же идет от штампа изменения.

Так же предложили мне такой вариант на PS:

[code]# удаляем файлы старше трех месяцев
$date = (Get-Date).AddMonths(-3)


Get-ChildItem -Path D:\DA | where {!$_.PSIsContainer} |
foreach {
if ($_.LastWriteTime -lt $date) {
# в тестовых целях указываем -whatif
# когда убедимся что все корректно работает то убираем его
#Remove-Item $_
}
}[code]

И что-то он не захотел работать, ошибок не выдает так же.

Kazun
26-09-2012, 16:50
$date = (Get-Date).AddMonths(-3)
Get-ChildItem -Path D:\DA -Rec -Force | Where {!$_.PSIsContainer -and $_.CreationTime -lt $date} | Remove-Item -WhatIf

И в случае успеха убрать -WhatIf.

Dr.DG
27-09-2012, 11:42
Вот на VBS без рекурсии Option Explicit

Dim fso
Dim objFolder
Dim strFolder
Dim objFiles
Dim objFile
Dim datDate

On Error Resume Next

'initialize parameters
strFolder = "D:\Folder"
datDate = Now - 7 'one week ago

'set object variables
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(strFolder)
Set objFiles = objFolder.Files

'loop through members of collection
For Each objFile in objFiles
'do something with file
Call DeleteOldFile(objFile, datDate)
Next

WScript.Quit Err.Number

Function DeleteOldFile(objFile, datDate)

'function deletes file which was created date specified and earlier

If objFile.DateCreated <= datDate Then
'WScript.Echo objFile.Name & " " & objFile.DateCreated
objFile.Delete
End If

End Function




© OSzone.net 2001-2012