Robocopy 仅复制新文件夹和文件

Robocopy 仅复制新文件夹和文件

目标:找到某个根文件夹(比如说 Documents)下的所有新文件和子文件夹,并将它们复制到另一个磁盘(J:在本例中)。

使用的命令行:

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

结果:创建了一个完整的文件夹树。仅复制了新文件,这是它应该的工作方式。到目前为止还不错。

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

结果是可以接受的,但需要做大量工作来遍历所有文件夹并查找新文件,以及了解哪些子文件夹是新的。

答案1

您可以添加/S。您不需要\E用于复制空目录的。您甚至不需要\XO由 完成的\MAXAGE

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

当目录中没有复制文件时,不会在目标上创建该目录。

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030 /XD {directories_to_exclude}

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

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030

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.

答案2

我的简单命令却非常有效:

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

解释:

  • 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

虽然不是这个特殊情况,但我希望这能够在人们进行文件服务器迁移时为他们提供帮助。

答案3

robocopy.exe "Q:\TEST" "T:\TEST" /E /XO /LOG+:"T:test.log

只是为了为 bertieb 分解这个 - 此代码应该直接从命令行运行,而不是在 bat 脚本中运行。

设置源和目标:

robocopy.exe "Q:\TEST" "T:\TEST"

"Q:\TEST"= 将源目录设置为映射驱动器“Q”

"T:\TEST"= 将目标目录设置为映射驱动器“T”

使用的选项:

/E /XO /LOG+:"T:test.log"
  1. /E :复制子目录(包括空目录)
  2. /XO :排除较旧的文件
  3. LOG+:这会将 robocopy 过程记录在名为 test 的 .log 文件中,该文件位于目标的根目录中(即 T 上的“TEST”文件夹上方)。LOG+ 会将输出状态附加到 test.log 文件,而不是覆盖它。

边注:

LOG+如果您只想保存最近的会话信息,可以将选项切换为 LOG 选项。

易于阅读的版本有关 Robocopy 的更多信息或者Microsoft 文档

答案4

robocopy.exe "Q:\TEST" "T:\TEST" /E /XO /LOG+:"T:test.log"

相关内容