我需要刪除資料夾內超過兩天的文件,最後修改時間為每月 1 日的文件除外。 Forfiles 不支援異常。作業系統是 Windows Server 2003。
謝謝大家的幫忙!
答案1
這裡是快速而骯髒的 VBScript,它採用英國日期格式來列舉檔案是否來自該月的 1 號。如果您使用不同的日期格式,請變更修剪指令以取得適當的數字位置。例如,美國日期將為 Mid(objFile.DateLastModified, 4, 2) = 01 而非 Left(objFile.DateLastModified, 2) = 01
不管怎樣,對骯髒的程式碼感到抱歉……但它應該可以幫助你開始。
strFolder = "C:\DeleteTest"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strFolder)
Set colFiles = objFolder.Files
strDaysOld = 2
'Get files from target folder
For Each File in colFiles
set objFile = objFSO.GetFile(strFolder & "\" & File.Name)
'Enumerate last modified date/time and delete if older than 2 days but where the date doesn't start with '01'
If objFile.DateLastModified < (Date() - strDaysOld) AND NOT Left(objFile.DateLastModified, 2) = 01 Then
objFSO.DeleteFile objFile, true
End If
Next