【VBS】複数ディレクトリ、X日以上前のファイル削除
スポンサーリンク
複数のディレクトリを指定し、かつタイムスタンプが特定日数以上経過しているファイルを削除するVBScript。指定ディレクトリを再起にできれば、更によいですがディレクトリ個別指定のほうが安全と思い個別指定にしました。
Option Explicit '指定期間(日)経過ファイルを削除 Dim OldDays OldDays = 60 '指定ディレクトリ毎にファイル削除を行います。 Dim aryFolder(3) aryFolder(0) = "D:\Dir0" aryFolder(1) = "D:\Dir1" aryFolder(2) = "D:\Dir2" aryFolder(3) = "D:\Dir3" '//////////////////////////////////////////////////////// 'メイン処理開始 '//////////////////////////////////////////////////////// '指定フォルダ内を一つづつ処理 Dim folder For Each folder in aryFolder deleteFiles(folder) Next '//////////////////////////////////////////////////////// 'ファイルリストアップ・削除関数 '//////////////////////////////////////////////////////// Sub deleteFiles(folder) On Error Resume Next Dim fileinfo(1) Dim i Dim targetFolder,file Dim fso Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set targetFolder = fso.GetFolder(folder) i = 0 Wscript.echo targetFolder For Each file In targetFolder.Files '------------ タイムスタンプでフィルタ-------------- if DateDiff("d", file.DateLastModified, date) >= OldDays then fileinfo(0) = file.Name 'ファイル名 fileinfo(1) =file.DateLastModified '変更日 fso.DeleteFile targetFolder &"\"& fileinfo(0) '削除 if not Err.Number = 0 then Wscript.echo " " & fileinfo(0) & " "& fileinfo(1) &" を削除できませんでした。 err " & Err.Number Wscript.Quit(1) else Wscript.echo " " & fileinfo(0) & " "& fileinfo(1) &" を削除しました。" end if i = i + 1 end if Next