我有两个文件夹与 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
。