我似乎无法在命令行上说“将目录 A 中的所有文件复制到目录 B,但是如果文件已经存在于目录 B 中,则不要覆盖它,无论哪个文件较新,不要提示我。”
我经历过复制、移动、xcopy 和 robocopy,我能得到的最接近的是你可以告诉 robocopy “将 A 复制到 B,但不要用旧文件覆盖新文件”,但事实并非如此为我工作。我查看了 xxcopy,但放弃了它,因为我不想第三方依赖于 Visual Studio 构建后事件,这将要求其他 SVN 用户安装该工具才能进行构建。
我想在 Visual Studio 2010 中的构建后事件中添加命令行,以便从 T4 生成的文件新模板EF模型对象被分发到它们所属的项目文件夹,但现有对象的重新生成文件不会覆盖可能已编辑的目标文件。
自从 T4 模板重新生成后,源文件总是更新的,我不能可靠地使用“更新”开关,我不认为。
我对那些我可以的项目使用部分类,但我生成的其他东西不能使用部分类(例如生成默认的 EditorTemplate 或 DisplayTemplate *.ascx 文件)。
有人解决过类似的问题吗?
最佳答案
Robocopy, or "Robust File Copy", is a command-line directory replication command. It has been available as part of the Windows Resource Kit starting with Windows NT 4.0, and was introduced as a standard feature of Windows Vista, Windows 7 and Windows Server 2008.
robocopy c:\Sourcepath c:\Destpath /E /XC /XN /XO
详细说明(使用 Hydrargyrum、HailGallaxar 和 Andy Schmidt 的回答):
/E
使 Robocopy 递归复制子目录, 包括空的。/XC
排除现有文件 相同的时间戳,但不同 文件大小。 Robocopy 通常会覆盖那些。/XN
排除较新的现有文件 比目的地的副本 目录。 Robocopy 通常 覆盖那些。/XO
排除 现有文件较旧 比目的地的副本 目录。 Robocopy 通常 覆盖那些。
排除 Changed、Older 和 Newer 类后,Robocopy 完全按照原始发布者的要求进行操作 - 无需加载脚本环境。
引用文献:Technet , Wikipedia
下载自:Microsoft Download Link (链接最后验证于 2016 年 3 月 30 日)
关于windows - 复制文件而不覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228807/