Показать сообщение отдельно
Старый 21.08.2009, 07:36   #6
fmike
Новичок
 
Пол:Мужской
Регистрация: 07.04.2008
Сообщений: 12
Репутация: 6
По умолчанию Re: автоматическое удаление файла по истечению определенного времени

Цитата:
Сообщение от Piligr1m Посмотреть сообщение
Как в этом случае отработает скрипт ?

В моем скрипте проверяется именно дата создания, и в этом проблемы нет. Дело в том, что при копировании файла у его копии дата создания - это текущая дата. Поэтому скрипт будет работать так, как надо.

Можно даже несколько модифицировать скрипт, чтобы применять его к любой папке и на любую "старость" файлов:

Код:
Dim fso, Period

Function DelFiles(Folder)
'*** Функция удаляет все файлы в папке Folder старше N дней

N = Period
Set f = fso.GetFolder(Folder)

Set fc = f.Files
For Each f1 in fc
	Set file = fso.GetFile(f1)
	diff = DateDiff("d", file.DateCreated, date,0, 0)
	If N < 0 Then
		file.delete
	Else
		If diff > N Then
			file.delete
		End If
	End If
Next

End Function

Function DelSubFolders(SubFolder)
'*** Функция перебирает подпапки в папке SubFolder,
'*** вызывает функцию удаления файлов и удаляет пустые подпапки

'Dim f, f1, fc, ff, ff1, fc1, file, diff

Set f = fso.GetFolder(SubFolder)
Set fc = f.SubFolders
For Each f1 in fc
	Set ff = fso.GetFolder(f1)
	DelFiles(ff)
	DelSubFolders(ff)
	
	If f1.size = 0 then
		f1.delete
	End If	
Next

End Function

Set fso = CreateObject("Scripting.FileSystemObject")

Share = WScript.Arguments(0)
Period = WScript.Arguments(1)

DelFiles(Share)
DelSubFolders(Share)
Тогда можно вызывать его так
wscript путь_имя_этого_скрипта.vbs "D:\Common" 5 -будут удалены файлы старше 5 дней и пустые подпапки в папке D:\Common
или
wscript путь_имя_этого_скрипта.vbs "D:\Common" -1 - будет полностью очищена папка D:\Common

Последний раз редактировалось fmike; 21.08.2009 в 07:46..
fmike вне форума
 
Ответить с цитированием Вверх
Сказали спасибо:
 
Время генерации страницы 0.09616 секунды с 10 запросами