如何使用xcopy只复制文件?

时间:2011-07-13 20:23:01

标签: visual-studio xcopy post-build-event

我在Visual Studio解决方案中有很多Web应用程序。

所有人都有相同的帖子构建命令:

xcopy "$(TargetDir)*.dll" "D:\Project\bin" /i /d /y

避免用旧文件替换较新的文件会很有用(例如有人可能会意外添加对旧版DLL的引用)。

如何使用xcopy仅使用Visual Studio生成的较新的DLL文件替换旧文件?

3 个答案:

答案 0 :(得分:31)

在命令行输入“help xcopy”:

/D:m-d-y     Copies files changed on or after the specified date.
             If no date is given, copies only those files whose
             source time is newer than the destination time.

所以你已经在使用xcopy来只用新文件替换旧文件。如果没有发生这种情况,您可能需要更换/i/d开关的位置。

答案 1 :(得分:2)

用户以下命令将所有新文件和修改过的文件从源复制到目标

xcopy c:\ source d:\ destination / D / I / E / Y

/ D检查是否存在任何修改的文件
/ I如果目标不存在并复制多个文件,则假定目标必须是目录。
/ E复制目录和子目录
/ Y来抑制任何覆盖提示。

答案 2 :(得分:0)

未经测试,但我使用类似的命令脚本来处理这些类型的任务。

set DIR_DEST=D:\Project\bin
pushd "$(TargetDir)"

::
:: Move Files matching pattern and delete them
::
for %%g in (*.dll) do (xcopy "%%g" "%DIR_DEST%" /D /Y & del "%%g")

::
:: Move Files matching pattern
::
:: for %%g in (*.dll) do (xcopy "%%g" "%DIR_DEST%" /D /Y )

popd