날짜별로 폴더 삭제

AutoIT 코드 샘플 - 날짜별 폴더 삭제

C05348A3-9AB8-42C9-A6E0-81DB3AC59FEB
           

AutoIT 코드 샘플 - 주어진 주 수보다 오래된 하위 폴더 삭제

이 시나리오를 상상해 보십시오...특정 Windows 서버에서 결함이 있는 응용 프로그램이 임시 폴더를 만들고 삭제하지 않고 있습니다.

이 AutoIT 스크립트는 주어진 주 수보다 오래된 모든 하위 폴더를 삭제하는 데 사용할 수 있습니다. 폴더 수명은 폴더 자체의 생성 날짜에 따라 결정되며 내부 파일은 확인하지 않습니다. 또는 마지막으로 액세스한 날짜! 그런 다음 삭제된 폴더 수와 절약된 공간(MB)을 나열하는 이벤트가 서버의 이벤트 로그에 추가됩니다. 소스 코드는 다음과 같습니다.

;===============================================================================
; Description:		Delete folder by date
; Author(s):		Videre Research, LLC - http://videreresearch.com
;===============================================================================
 
#Include <file.au3></file.au3>
#Include <array.au3></array.au3>
#Include <date.au3></date.au3>
 
;The path of the folder containing the temporary folders to be deleted
$TempPath = "C:\Program Files\temp\dmserver\tmp"
;Files older than this given number of weeks will be deleted
$numberOfWeeks = 3
 
;The size of the folder before the delete
$sizeBefore = Round(DirGetSize($TempPath) / 1024 / 1024)
 
$FileList=_FileListToArray($TempPath, "*", 2)
If @Error=1 Then
    ;MsgBox (0,"","No Files\Folders Found.")
    Exit
EndIf
;_ArrayDisplay($FileList,"$FileList")
 
$NUmberOfFiles = UBound($FileList)
ToolTip($NUmberOfFiles & "Files ")
 
$deletedFolders = 0
 
for $i = 1 To $NUmberOfFiles - 1
	ToolTip(ProcessGetStats() & " - File " & $i & " of " & $NUmberOfFiles & " - " & $FileList[$i])
	if FileExists($TempPath & "\" & $FileList[$i]) Then
		$t =  FileGetTime($TempPath & "\" & $FileList[$i], 1)
		If Not @error Then
			$yyyymd = $t[0] & "/" & $t[1] & "/" & $t[2]
			ConsoleWrite($TempPath & "\" & $FileList[$i] & " - " & $yyyymd)
			if _DateDiff( 'w', $yyyymd, _NowCalc()) > $numberOfWeeks Then
				ConsoleWrite(" old" & @CRLF)
				$deletedFolders += 1
				DirRemove($TempPath & "\" & $FileList[$i], 1)
			Else
				ConsoleWrite(@CRLF)
			EndIf
		EndIf
	EndIf
Next
 
$sizeAfter = Round(DirGetSize($TempPath) / 1024 / 1024)
$size = $sizeBefore - $sizeAfter
 
;Add an event to the event log
$SystemEvent='eventcreate /T WARNING /ID 999 /L APPLICATION /SO "File Cleanup" /D "' & $deletedFolders & ' old temp folders ('& $size &' MB) were deleted in folder ' & $TempPath & '."'
RunWait(@ComSpec & " /c " & $SystemEvent, "", @SW_HIDE)
Sleep(10000)

이제 이 작업을 매일 또는 매주 예약하기만 하면 파일을 제어할 수 있습니다...

댓글을 게시했습니다: 0