我只是似乎无法在命令行上找到一种方法来表示“将目录 A 中的所有文件复制到目录 B 中,但如果该文件已存在于目录 B 中,则不要覆盖它,无论哪个文件较新,并且不要提示我。”
我已经经历过复制、移动、xcopy 和 robocopy,我能得到的最接近的是你可以告诉 robocopy“将 A 复制到 B,但不要用旧文件覆盖新文件”,但这对我不起作用。我查看了 xxcopy,但放弃了它,因为我不想对 Visual Studio 构建后事件产生第三方依赖,这将需要其他 SVN 用户安装该工具才能进行构建。
我想将命令行添加到 Visual Studio 2010 中的构建后事件,以便从T4 http://en.wikipedia.org/wiki/Text_Template_Transformation_Toolkit新的模板EF http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework模型对象被分发到它们所属的项目文件夹中,但现有对象的重新生成的文件不会覆盖可能已编辑的目标文件。
由于T4模板重新生成,源文件总是更新的,我不认为我不能可靠地使用“更新”开关。
我对那些可以使用的项目使用部分类,但我生成的其他内容不能使用部分类(例如生成默认的 EditorTemplate 或 DisplayTemplate *.ascx 文件)。
有人解决过类似的问题吗?
Robocopy, 或“鲁棒文件复制”,是一个命令行目录复制命令。从 Windows NT 4.0 开始,它作为 Windows 资源工具包的一部分提供,并作为 Windows Vista、Windows 7 和 Windows Server 2008 的标准功能引入。
robocopy c:\Sourcepath c:\Destpath /E /XC /XN /XO
详细说明(使用 Hydrargyrum、HailGallaxar 和 Andy Schmidt 的答案):
-
/E
使 Robocopy 递归复制子目录,
包括空的。
-
/XC
排除现有文件
相同的时间戳,但不同
文件大小。 Robocopy 通常会覆盖这些内容。
-
/XN
排除较新的现有文件
比目的地中的副本
目录。机器人复制通常
覆盖那些。
-
/XO
排除
现有文件较旧
比目的地中的副本
目录。机器人复制通常
覆盖那些。
排除 Changed、Older 和 Newer 类后,Robocopy 完全按照原始发布者的要求进行操作 - 无需加载脚本环境。
参考:Technet http://technet.microsoft.com/en-us/library/cc733145.aspx, 维基百科 http://en.wikipedia.org/wiki/Robocopy
下载地址:微软下载链接 http://www.microsoft.com/en-us/download/details.aspx?id=17657 (链接最后验证日期为 2016 年 3 月 30 日)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)