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

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

Пользователь


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

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


Скрипт из темы http://forum.oszone.net/thread-146190-3.html
Код: Выделить весь код
'==== Script Information Header ====
'script name:	Purge Temp
'version:		1.0
'date:			16.07.08
'autor:			Bochkarev Vitaly
'description:	Скрипт удаляет устаревшие временные файлы с компьютера.

'==== Script Main Logic ====
on error resume next
const PurgeTime = 14 'days

'Exceptions - folders, which will not be processed
dim aExceptions(3)
aExceptions(0) = "Default User"
aExceptions(1) = "LocalService"
aExceptions(2) = "NetworkService"
aExceptions(3) = "All Users"

set oFSO = CreateObject("Scripting.Filesystemobject")
set oShell = createobject("wscript.shell")

'Set paths
sProgramFiles = oShell.ExpandEnvironmentStrings("%ProgramFiles%")
sWinDir = oShell.ExpandEnvironmentStrings("%WinDir%")
sWinTempFolder = sWinDir & "\Temp"
sDocuments = "C:\Documents and Settings"

'Create log-file
sLogFileName = sWinTempFolder & "\PurgeTemp_" & Date
sLogFileName = Replace(sLogFileName, ".", "_")
sLogFileName = Replace(sLogFileName, "/", "_")
set oLogFile = oFSO.CreateTextFile(sLogFileName & ".log",true)
oLogFile.WriteLine "========== Start purging =========="

'Purge Windows Temporary folder
oLogFile.WriteLine vbCrLf & "========== Windows Temporary folder =========="
PurgeFolder(sWinTempFolder)

'Purge Users Temporary folder and Users Temporary Internet Files
oLogFile.WriteLine vbCrLf & "========== Users Temporary folder and Users Temporary Internet Files =========="
set oDocuments = oFSO.GetFolder(sDocuments)
set colProfiles = oDocuments.SubFolders
for each oProfile in colProfiles
	bFlag = false
	for each sException in aExceptions
		if InStr(oProfile.Path,sException) > 0 then
			bFlag = true
			exit for
		end if
	next
	if bFlag = false then
		PurgeFolder(oProfile.Path & "\Local Settings\Temp")
		PurgeFolder(oProfile.Path & "\Local Settings\Temporary Internet Files")
	end if
next

'Purge NOD32 Quarantine
oLogFile.WriteLine vbCrLf & "========== NOD32 Quarantine =========="
sQuarantine = sProgramFiles & "\Eset\Infected"
PurgeFolder(sQuarantine)

'Close log-file
oLogFile.WriteLine vbCrLf & "========== Stop purging =========="
oLogFile.Close

'PurgeFolder procedure
sub PurgeFolder(sFolderPath)
	set oFolder = oFSO.GetFolder(sFolderPath)
	set colFiles = oFolder.Files
	for each oFile in colFiles
		if (Date-oFile.DateLastModified) > PurgeTime and (Date-oFile.DateCreated) > PurgeTime then
			oLogFile.Writeline oFile.Path & vbTab & oFile.DateCreated
			oFSO.DeleteFile oFile.Path, true
			if err.Number <> 0 then
				oLogFile.Writeline "-----> Error # " & CStr(Err.Number) & " " & Err.Description
				err.clear
			end if
			wscript.sleep 20
		end if
	next
	set colSubFolders = oFolder.SubFolders
	for each oSubFolder in colSubFolders
		PurgeFolder(oSubFolder.Path)
		if oSubFolder.Size = 0 then 
			oLogFile.Writeline oSubFolder.Path & vbTab & oSubFolder.DateCreated
			oFSO.DeleteFolder oSubFolder.path
			if err.Number <> 0 then
				oLogFile.Writeline "-----> Error # " & CStr(Err.Number) & " " & Err.Description
				err.clear
			end if
		end if
	next
end sub
Здесь как раз есть папки-исключения. Если немного подумать, то можно приспособить скрипт под свои нужды.

-------
Статьи для системных инженеров http://www.sysengineering.ru


Отправлено: 08:44, 15-02-2010 | #10