删除 2 天前的档案,但有一些例外

删除 2 天前的档案,但有一些例外

我需要删除文件夹中超过两天的文件,但上次修改日期为每月 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

答案2

我认为这取决于您对编程/脚本语言的熟悉程度和舒适程度。

例如,这是一个 PowerShell例子我对 Python、Perl 和(*nix/Linux)版本更感兴趣,而且用 Python 做类似的事情相当容易(例子)。

这两个例子都来自谷歌搜索powershell 删除早于以下的文件或者python 删除早于以下的文件...以防您想寻找替代方案。

我不熟悉任何 GUI 工具或快速设置工具,因为我从来没有真正需要它们。在大多数情况下,您要求的所有内容都可以在不到 20 行的时间内编写完成。

相关内容