日付でフォルダを削除する

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