如何使用 robocopy 删除超过 30 天的文件?

如何使用 robocopy 删除超过 30 天的文件?

我有两个文件夹与 robocopy 同步(源和镜像),我尝试在 30 天之前不删除镜像中的文件。我尝试使用/MINAGE选项“考虑所有超过 30 天的文件”,以便它只删除镜像中 30 天前的文件,但似乎它只对可用文件起作用(未删除)。

robocopy /MIR /MINAGE:30 /SD:src /DD:mirror

因此,基本上,如果我创建一个新文件,它将在镜像中正确同步(通过另一个根本不删除文件的 robocopy 任务);如果在第二天删除它,则在运行上一个命令时该文件也将在镜像中删除。总而言之,我想删除 src 文件夹中已删除且在镜像中超过 30 天的文件。

我是否遗漏了什么?

谢谢。

答案1

我不知道如何使用 robocopy 来做到这一点,但是当我想做与您相同的操作时,我将这一行放入批处理文件中:

forfiles -p %_BACKUPPATH% -m *.rar -d -3 -c "cmd /c del @path"

解剖是:

  • forfiles- 文件过滤程序
  • -p %_BACKUPPATH%--p表示“路径”(我的是%_BACKUPPATH%,但你可以用“真实”路径替换它),否则它使用当前目录
  • -m *.rar- 按文件类型过滤.rar,跳过此参数*.*
  • -d -3- 仅影响 3 天以上的文件(-3
  • -c "cmd /c del @path"- 之后的任何内容-c都是对它找到的每个文件执行的操作,在本例中为del

相关内容