Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Ua-life:
Сейчас удаляет файлы созданные 30 дней назад, но папки в которых находились файлы созданные 30 дней назад не удаляет, вот мне нужно, что бы и папки удалялись »
Не нужно. Удалять потребно лишь пустые папки.

Цитата Ua-life:
Я же прошу не критиковать то, что написано в скрипте, автор не я, а всего лишь прошу помочь достичь желаемого результата )) »
Для очистки я много лет как пользую свой. В Вашем варианте может выглядеть примерно так (не проверялось):
читать дальше »
Код: Выделить весь код
Option Explicit

Const intDays2Live   = 30
Const strPathToClear = "D:\BackUp"


With WScript.CreateObject("Scripting.FileSystemObject")
	If .FolderExists(strPathToClear) Then
		ClearSubFolders .GetFolder(strPathToClear)
	Else
		WScript.Quit 1
	End If
End With

WScript.Quit 0
'=============================================================================

'=============================================================================
Sub ClearSubFolders(objFolder)
	Dim objSubFolder
	Dim objFile
	
	
	For Each objSubFolder In objFolder.SubFolders
		ClearSubFolders objSubFolder
	Next
	
	For Each objFile In objFolder.Files
		If DateDiff("d", objFile.DateLastModified, Now()) > intDays2Live Then
			objFile.Delete(True)
		End If
	Next
	
	If (objFolder.Files.Count = 0) And (objFolder.SubFolders.Count = 0) Then
		If objFolder.Path = strPathToClear Then
			' Nothing to do
		Else
			objFolder.Delete True
		End If
	End If
End Sub
'=============================================================================

Последний раз редактировалось Iska, 05-06-2014 в 16:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:50, 05-06-2014 | #4