日付でフォルダを削除する
AutoITコードサンプル-日付でフォルダを削除
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