Имя пользователя:
Пароль:
 

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

Новый участник


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

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


Немного исправил код, перенес все переменные в начало и добавил удаление пустых директорий.
Код: Выделить весь код
Public objFSO
arrFolders  = Array( _
   "c:\folder1", _
   "c:\folder2", _
   "c:\folder3")
arrExt  = Array("doc","ods","odt","txt","db","xls","jpg","gif","png",)
DeathLine=60
FileByteSize=1024
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each strFolder In arrFolders
	If objFSO.FolderExists(strFolder) Then
        Call DelFiles(strFolder)
		Call DelEmptyFolders(strFolder)
			WScript.Echo "Папка "&strFolder&" очищена."
		Else
			WScript.Echo "Не найден путь " & strFolder
	End If
	next
WScript.Quit 0

Sub DelEmptyFolders(sFldr)
   Dim mDir, subDir, arDir

   Set mDir = objFSO.GetFolder(sFldr)
   Set subDir = mDir.SubFolders

   For Each arDir In subDir
     DelEmptyFolders arDir.Path
   Next

   If mDir.Size = 0 Then
      mDir.Attributes = 0
      mDir.Delete
   End If
End Sub

Sub DelFiles(sFldr)
	Dim mainDir, objFile, subDir,arDir
	Set mainDir = objFSO.GetFolder(sFldr)
	Set subDir = mainDir.SubFolders
	For Each objFile In mainDir.Files
		For Each arrFileExt in arrExt
		Datefile = objFile.DateLastModified
		DiffDate = DateDiff("d",Datefile,Now)
		if LCase(objFSO.GetExtensionName(objFile)) = arrFileExt then
		If DiffDate >= DeathLine and _
		objFile.Size > FileByteSize then objFile.Delete TRUE
		On Error Resume Next
		end if
	next
	next
	For Each arDir In subDir
		DelFiles arDir.Path
	Next
end Sub

Последний раз редактировалось nineline, 12-07-2012 в 15:58.

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

Отправлено: 13:27, 12-07-2012 | #4