我需要删除文件夹中超过两天的文件,但上次修改日期为每月 1 号的文件除外。Forfiles 不支持例外。操作系统是 Windows Server 2003。有什么想法吗?
谢谢大家的帮助!
答案1
这里是快速而简单的 VBScript,它假设英国日期格式用于枚举文件是否来自每月 1 日。如果您使用不同的日期格式,则更改 trim 命令以获取适当的数字位置。例如,美国日期将是 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