刪除 2 天前的檔案(但有些例外)

刪除 2 天前的檔案(但有些例外)

我需要刪除資料夾內超過兩天的文件,最後修改時間為每月 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

答案2

我想說這取決於您對程式設計/腳本語言的熟悉程度和舒適度。

例如,這是一個 PowerShell例子。我更偏愛 Python、Perl、(*nix/Linux)變體,類似的東西在 Python 中會很容易(例子)。

這兩個例子都來自谷歌搜尋powershell刪除早於或者python 刪除早於....如果您想檢查替代方案。

我不熟悉任何 GUI 工具或快速設定工具來執行此操作,因為我從未真正需要它們。在大多數情況下,您所要求的所有內容都可以用不到 20 行的程式碼編寫出來。

相關內容