PowerShellではできたので、VBScriptで指定日以前にごみ箱に捨てたファイルを削除してみる。
PowerShellがもっと流行れば、VBScriptから逃げられるんだけど…その日はまだ遠そうだ。
※ごみ箱の中のフォルダを消そうとすると「実行時エラー:・・・」となるので一度Tempフォルダに移動してからcmdのrmdirで消している。
3日前に削除したファイルをけすなら、cmdなどから
> CScript /nologo DeleteGarbabeFiles.vbs /Date:3
とする。
/Date:3 をつけなければ、一週間前までのを削除する。
--- DeleteGarbabeFiles.vbs ---
If WScript.Arguments.Named("Date") = "" Then
nDays = 6
Else
nDays = Int(WScript.Arguments.Named("Date"))
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Shell.Application")
Set WshShell = CreateObject("WScript.Shell")
Set trash = objShell.NameSpace(10)
For Each item in trash.Items()
If Int(Now() - CDate(trash.GetDetailsOf(item, 2))) >= nDays Then
If objFSO.FileExists(item.Path) Then
objFSO.DeleteFile item.Path
ElseIf objFSO.FolderExists(item.Path) Then
dustFolderPath = objFSO.GetSpecialFolder(2).Path & "_TempDeleteFolder"
objFSO.MoveFolder item.Path, dustFolderPath
delCommand = "cmd.exe /C rmdir /S /Q " & """" & dustFolderPath & """"
WshShell.Run delCommand, 0, true
End If
End If
Next
Set objFSO = Nothing
Set objShell = Nothing
Set WshShell = Nothing
Set trash = Nothing