寻找 Windows 脚本来删除超过 1 年的文件

Posted

技术标签:

【中文标题】寻找 Windows 脚本来删除超过 1 年的文件【英文标题】:Looking for Windows script to delete files older than 1 year 【发布时间】:2021-04-24 08:21:47 【问题描述】:

我需要一个 Windows 脚本来删除超过 1 年的文件:

forfiles  /S /P "E:\" /M *.* /D -365 /C "cmd /c echo @path" >> "xxx_log"

我不熟悉 Windows 脚本。

谁能帮帮我?

【问题讨论】:

【参考方案1】:

如果你打算使用windows脚本/批处理文件,但对它们不熟悉,我真的建议你先熟悉一下,否则玩起来可能很危险,尤其是批量删除时...

首先打开命令提示符并输入FORFILES /? 以阅读FORFILES 命令的帮助和DEL /?DEL(删除)命令的帮助。

您正在寻找的完整命令是这样的:

FORFILES /S /P "E:\" /M "*" /D -365 /C "CMD /C DEL @path"

其中E:\ 是***目录,* 是您要匹配的通配符(例如更改为*.bak 以仅删除扩展名为.bak 的文件),365 是天数(减号表示删除任何超过 365 天的内容)。

【讨论】:

除了您使用的无效/Q 选项(现已更正),我还建议您无需使用/M 选项,因为它的默认值已经是*。此外,您可能还希望为您的DEL 命令包括一些其他选项,例如它的/A/F 选项。此外,由于目的是删除文件,您应该省略可能的目录路径,也使用@ISDIR。示例:FORFILES /P "E:\" /S /D -365 /C "CMD /C IF @ISDIR==FALSE DEL /A /F @PATH".【参考方案2】:

除了您使用的无效 /Q 选项(现已更正),我还建议您无需使用 /M 选项,因为它的默认值已经是 *.此外,您可能还希望为您的 DEL 命令包括一些其他选项,例如它的 /A 和 /F 选项。此外,由于目的是删除文件,您应该省略可能的目录路径,也使用@ISDIR。示例: FORFILES /P "E:" /S /D -365 /C "CMD /C IF @ISDIR==FALSE DEL /A /F @PATH"。 – 昨天的组合

感谢您的回答。可以用天来代替365吗?

FORFILES /P "E:" /S /D -"01/01/2020" /C "CMD /C IF @ISDIR==FALSE DEL /A /F @PATH" ?谢谢。

【讨论】:

以上是关于寻找 Windows 脚本来删除超过 1 年的文件的主要内容,如果未能解决你的问题,请参考以下文章

从批处理文件中删除带有通配符的文件夹 Windows 7

我正在尝试编写python脚本来查找超过1000行的文件中的字符串,并在该字符串匹配后删除几行(10)

如何删除所有超过一年的 Git 远程分支?

shell脚本汇总 2 删除创建时间超过32天的文件

删除超过 7 天的文件

删除超过x年或数天的文件