robocopy - 何时从目标位置删除文件?

robocopy - 何时从目标位置删除文件?

我想覆盖目标中的旧文件,但是不是删除仅存在于目标中的文件。

https://ss64.com/nt/robocopy.html我明白这/XO可能会做到这一点,但我也明白可以从目标中删除文件(如果它们在源中没有对应文件)。第二种行为(我想避免)究竟何时发生?

答案1

当您使用以下两个选项之一时:

  • /清除:删除源中不再存在的目标文件/文件夹。
  • /和平号空间站:MIRror 目录树 - 相当于 /PURGE 加上所有子文件夹 (/E)

例子:

  • 机器人复制/清除c:\源 d:\目标
  • 机器人复制/和平号空间站c:\源 d:\目标

然后,如果源文件中不存在文件,您将删除目标文件中的文件。

Robocopy 也将默认“默认情况下,仅当源和目标具有不同的时间戳或不同的文件大小时,Robocopy 才会复制文件。”

我还建议您研究一下:

  • /复制:copyflag[s]:要复制什么(默认为/COPY:DAT)(copyflags:D=数据、A=属性、T=时间戳、S=安全性=NTFS ACL、O=所有者信息、U=审核信息)。

例子:

  • 机器人复制/复制:DATc:\源 d:\目标

这将确保您获得所复制文件的相同时间戳。

答案2

如果您使用 /PURGE 并且选项中还有 /XX,则 PURGE 将不会删除文件或文件夹,因为 /XX 会使 Robocopy 忽略它们。从选项中删除 /XX,Purge 将起作用,并且每个已删除的文件都将在日志中显示为 *EXTRA 文件。目录将显示为 *EXTRA Dir。Extras 将从目标地址中删除

相关内容