寻找 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 年的文件的主要内容,如果未能解决你的问题,请参考以下文章