【问题标题】:Delete file if older than 5 days using FORFILES使用 FORFILES 删除超过 5 天的文件
【发布时间】:2014-05-14 21:19:15
【问题描述】:

我无法让 FORFILES 为我工作。我使用下面的一个示例运行了一个 .bat,它备份了我每天拥有的几个数据库。

COPY "X:\W Attendenance\C Crew Attendance\Attendance Control DB v4.xx.accdb" "X:\Supervisors Log\Backups\Attendance Bak\bak_%currdate%_Attendance Control DB v4.xx.accdb"

然后在运行备份后,我想使用以下示例删除超过五天的旧文件。

FORFILES /p "X:\Supervisors Log\Backups\Attendance Bak\" /d -5 /c "cmd /c del @path "

但是发生的情况是它会创建备份但从不删除旧的。我做错了什么?

Ken 它似乎仍然无法正常工作。我将@file 更改为@path 并运行,我仍然有我的备份。我还有另一个问题,我可以将删除限制为仅以 bak_ 开头的文件吗?我可以按文件名删除文件吗,因为每个备份都以 bak_ 开头,然后是日期 mm-dd-yyyy_ 然后是文件名...

【问题讨论】:

  • 你不应该使用@path 代替@file 吗?
  • Batch file to delete files older than N days 的可能副本。如果您在该问题的已接受答案中查看forfiles 的使用,您会发现它应该是@path 而不是@file

标签: batch-file


【解决方案1】:

这解决了它...感谢您的帮助和链接!

forfiles -p "X:\Supervisors Log\Backups\Attendance Bak" -s -m *.* -d -1 -c "cmd /c del @path"

【讨论】:

    【解决方案2】:

    附带说明,只能删除文件,但有时我需要删除文件夹及其中的所有内容,因此我使用:

    FORFILES /P "H:\BACKUPS\bk_Operator_Rate_Program" /d -10 /c "cmd /c IF @isdir == TRUE rd /S /Q @path"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 2016-09-20
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多