我正在使用 robocopy (v 5.1.10.1027) 通过网络共享将文件传输到我的开发服务器。我使用该/MIR
选项确保在重命名某些文件时删除多余的文件。我排除了几个目录,因为我有其他进程将它们从不同的来源或在不同的时间移动。排除这些目录在大多数情况下都有效,但有一个除外,它将其列在排除目录中,然后继续从该目录中删除所有文件。
我的 robocopy 命令如下所示:
robocopy . \\myserver.com\dev$ /MIR /XA:HR /XD assets /XD bin /XD ektsyncstatus /XD uploadedfiles /XD uploadedimages /XD privateassets /XD Campaign\Resources /XD InternalTools /XD ITS /XD postal /XD workarea /XD VideoPlayer /XD "XmlFiles\ITS" /XD ".*" /XF ".*" /XD "_*" /XF "*.config" /XF ekdavlog.txt /XF "uploadedfiles*.*" /XF "*.bak"
并且它不排除的目录是Campaign\Resources
。更改排除目录的顺序不起作用。
编辑:它是在用引号引起来的情况下这样做的,而子目录的另一个示例则"XmlFiles\ITS"
保持不变。
日志太长,不适合这个问题:https://gist.github.com/5thWall/d50afc102a09bdbf4235
答案1
我刚刚做了一个小测试,可以确认在 XP027 版本中使用带有 /XD 的“多部分”路径存在很大缺陷。
只有当我包含要排除的目录的完整路径时它才会起作用。
也许您可以尝试较新版本的 Robocopy。
答案2
尝试将其括在引号中,类似于示例中的“XmlFiles\ITS”路径。