如何仅复制那些不在目标位置的文件?


31

是否可以使用robocopy仅复制目标中不存在的文件?

robocopy具有一个/ is(包括相同文件)开关。我正在寻找的是/ xs开关。如果源文件和目标文件中都存在文件,则我不想复制该文件。条件仅是文件名,与修改日期,大小等无关。例如,即使源文件的文件(基于修改日期)比目标文件中的相同文件新,我也不想复制它。可以这样做吗?谢谢。

Answers:


37

只需使用/xc(排除更改)/xn(排除新的)和/xo(排除旧的)标志即可:

robocopy /xc /xn /xo source destination 

那是行不通的(至少在您还有其他选择的情况下,例如/ b / e / copyall)。Robocopy会查看时间戳,我相信即使上次访问的时间戳不同,它也会复制。如果有办法,很想知道。

/ xn和/ xo选项应防止由于时间戳不同而导致robocopy无法复制。我测试时效果很好。Robocopy不会注意上次访问的时间戳。您的答案可能会被删除(因为它不是答案),但是如果您想讨论这个问题,可以给我发电子邮件。
哈里·约翰斯顿

4
如果在不同的文件系统(NTFS,FAT)之间复制,请使用/ FFT。它应防止Robocopy认为文件实际上是相同的日期和时间,而文件是旧/新文件。
马丁

@HarryJohnston,我有一个在.bat文件中运行的脚本,它似乎可以复制文件,但会覆盖目标文件夹中的文件。我想知道的是如何获取此脚本来移动文件,并在目标文件夹中添加时间戳作为目标文件名的一部分?START /WAIT robocopy %EFM_EXPORT% %EFM_TEMP% *.CFX /S /NP /R:5 /W:5 /XX /XD *PR *PA *TA *DC *Bypass /MOV /LOG:%EFM_MOVE%
DJ KRAZE'9

5
值得添加该/s开关,否则如果它们已经存在,它将不会输入目录。
汤姆·卡彭特

-1

如果要从左向右复制,则只想复制左侧到右侧的孤立文件。

我使用名为Beyond Compare的付款工具来处理这类情况。RoboCopy非常适合映射驱动器甚至UNC路径,但是我的两个用例涉及:

  • FTP将新文件复制到我的网站
  • 移动/存档文件到DropBox

那样,我不幸的是不能用RoboCopy做。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.