windows - 复制文件而不覆盖

标签 windows batch-file xcopy robocopy

我似乎无法在命令行上说“将目录 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/

相关文章:

MySQL批处理文件更新

windows - 如何将日期附加到 xcopy 中的目录路径

windows - 跨 Windows 操作系统的命令行提示路径

C++ bad_alloc 异常

css - Windows 10 缩放默认高于 100% 导致网站大小问题

sql-server - 将 Unix 文件导入 SQL Server 的最有效和可靠的方法

windows - 获取未知文件名以批量压缩文件

visual-studio - Visual Studio 生成后事件 - xcopy 到不同的相对目录

.net - 具有强类型且无大小限制的轻型 SQL 数据库

windows - Docker 容器在启动后立即关闭