robocopy:仅复制旧版本已在目标文件夹中的较新文件(更新文件,而不是文件夹)

robocopy:仅复制旧版本已在目标文件夹中的较新文件(更新文件,而不是文件夹)

为了更新目标文件夹中的文件,我只想复制目标文件夹中已有的旧版本的新文件。

我不想复制源文件夹中有但不在目标文件夹中的任何文件。

这样,我就不会增加目标文件夹中的文件数量,而只会更新目标文件夹中的现有文件。

例子:

  • 源目录:

    A.txt   2020-08-25  
    B.txt   2020-09-13  
    C.txt   2020-05-03  
    
  • 目标目录:

    B.txt   2020-08-09  
    C.txt   2020-05-03  
    

在这种情况下,只有B.txt应该复制,因为:

A) A.txt 目标文件夹中不存在,因此不要复制它,
b) B.txt 在目标文件夹中较旧,因此,复制它,
C) C.txt 因为目的地并不老,所以不要复制它。


  • RoboCopy这样做吗,或者我需要一个批处理文件?

答案1

如果您只需要将新数据复制到目标文件夹,此链接中有很多针对同一问题的想法 Robocopy 命令复制更新的文件和长路径名

答案2

免责声明:当我发现这个问题时,我正在寻找完全相同的问题。我有点惊讶地发现答案只出现在对未接受答案的评论中,所以我基本上只是重申一下史蒂夫·林斯伯格上面评论过。

使用XCOPY SrcFolder [DstFolder] /U /D [/E]正是按照要求进行的,使用:

  • SrcFolder包含较新文件的存储库文件夹
  • DstFolder复制到的位置(以及查找要复制的内容的位置)。如果命令在DstFolder
  • /U仅复制目标中已存在的文件。
  • /D复制源时间比目标时间新的文件。
  • /E将此同类副本扩展到子目录。

我还发现,只输出将被复制的内容(而不实际执行此操作)很有用,可以使用

XCOPY SrcFolder [DstFolder] /U /D [/E] /Y /F /L

  • /L显示将被复制的文件。
  • /Y抑制确认是否覆盖现有目标文件的提示。
  • /F复制时显示完整的源文件名和目标文件名。

相关内容