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

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

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

我不熟悉 Windows 脚本。

谁能帮帮我?

【问题讨论】:

    标签: windows batch-file command-prompt


    【解决方案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" ?谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多