PDA

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


KillHunter
02-03-2009, 09:53
Добрый день! помогите написать скрипт для удаления файлов созданных ранее текущей даты на неделю. Цель сего скрипта такова, есть файлы в директории D:\Backup, созданные с помощью ntbackup (файлы *.bkf), которые содержат в имени файла дату создания(04.02.2009.bkf).Нужно чтобы скрипт проверял текущую дату и удалял файлы старее 1 недели.

amel27
02-03-2009, 10:49
если имя файла соответствует отображению даты текущей локали:
strRoot = "C:\Backup"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDIR = objFSO.GetFolder(strRoot)
Set colFiles = objDIR.Files

For Each objFile In colFiles
FileDate = CDate(Left(objFile.Name,10))
If DateDiff("w",FileDate,Now)>0 Then
objFile.Delete
End If
Next

KillHunter
03-03-2009, 16:05
если имя файла соответствует отображению даты текущей локали: Код: strRoot = "C:\Backup" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objDIR = objFSO.GetFolder(strRoot) Set colFiles = objDIR.Files For Each objFile In colFiles FileDate = CDate(Left(objFile.Name,10)) If DateDiff("w",FileDate,Now)>0 Then objFile.Delete End If Next

Выдаёт ошибку несоответствие типа CDate

amel27
03-03-2009, 17:14
Выдаёт ошибку несоответствие типа CDate »
значит имя файла не соответствует формату даты, отладочный вариант:
On Error Resume Next
strRoot = "C:\Backup"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDIR = objFSO.GetFolder(strRoot)
Set colFiles = objDIR.Files

For Each objFile In colFiles
FileDate = CDate(Left(objFile.Name,10))
If Err.Number<>0 Then
WScript.Echo "Файл: """ & objFile.Name &""""& vbCRLF & _
"Дата: """ & Left(objFile.Name,10) &""""& vbCRLF & _
vbCRLF & Err.Description
WScript.Quit
End If
If DateDiff("w",FileDate,Now)>0 Then
objFile.Delete
End If
Next

KillHunter
05-03-2009, 10:36
Спасибо.В данном виде всё работает.

amel27
06-03-2009, 12:23
скрипты абсолютно одинаковые, но в последнем варианте отключены системные сообщения об ошибках, поэтому лучше найти ошибку




© OSzone.net 2001-2012