Robocopy 仅复制新文件夹和文件

Val*_*pal 11 command-line robocopy

目标:在某个根文件夹(让我们说 Documents)下找到所有新文件和子文件夹,并将它们复制到另一个磁盘(J:在这种情况下)。

使用的命令行:

robocopy c:\users\valery\documents j:\robocopy /XO /E /MAXAGE:20131030 /XD

结果:创建了一个完整的文件夹树。只复制新文件,这是它应该工作的方式。目前很好。

一点是,如果目标磁盘中没有新文件,我不想在目标磁盘上创建所有子文件夹。

结果是可以接受的,但是要浏览所有文件夹并查找新文件以及了解哪些子文件夹是新的子文件夹,还有很多工作要做。

Rik*_*Rik 13

您可以/S为此添加。您不需要\Ewhich 用于复制空目录。您甚至不需要\XO\MAXAGE.

/S :: 复制子目录,但不是空的。

如果在目录中没有复制文件,则不会在目标上创建该目录。

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030 /XD {directories_to_exclude}
Run Code Online (Sandbox Code Playgroud)

如果您没有要排除的目录,则可以使用:

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030
Run Code Online (Sandbox Code Playgroud)

你可以robocopy /?为所有的帮助做一个。

 /S :: copy Subdirectories, but not empty ones.
 /E :: copy subdirectories, including Empty ones.
 /XD dirs [dirs]... :: eXclude Directories matching given names/paths.
 /XO :: eXclude Older files.
 /MAXAGE:n :: MAXimum file AGE - exclude files older than n days/date.
Run Code Online (Sandbox Code Playgroud)


小智 5

我的简单命令很好用:

RoboCopy.exe  "\\\SourceServer\Folder" "X:\WEB" /copy:datso /mir /fft /r:0 /w:0 /secfix /mt:20 /xo /xf thumbs.db /log+:X:\TON-FS4.log /nc /ns /np /ndl /nfl /tee
Run Code Online (Sandbox Code Playgroud)

解释:

  • X:\WEB 是我的目标文件夹。
  • 开关:
    • /copy:datso: 指定要复制的文件属性:
      • (d:数据,a:属性,t:时间戳,s:NTFS 访问控制列表(ACL),o:所有者信息)
    • /mir: 镜像目录树
    • /fft: 假设 FAT 文件时间,复制数据时很重要
    • /r:0: 失败的重试次数
    • /w:0: 重试之间的等待时间 0 秒
    • /secfix:修复所有文件的文件安全性,甚至是跳过的文件
    • /mt:20: 创建 20 个线程副本
    • /xo:排除较旧的文件 - 如果目标文件存在并且与源文件的日期相同或更新 - 不要费心覆盖它。
    • /xf thumbs.db:排除“thumbs.db”文件(路径),您可以在此处使用通配符(ei:*.mp3)
    • /log+:filename.log: 将状态输出写入指定的日志文件
    • (附加到现有的日志文件)或仅使用新日志 /log:filename.log

不是这种特殊情况,但我希望在他们进行文件服务器迁移时会有所帮助。