让XCopy复制文件,如果存在则不覆盖前一个文件(不提示)

时间:2011-03-01 09:49:44

标签: xcopy

我正在向远程计算机发送命令以使其复制文件。 我想要复制文件,但不要用相同的名称覆盖以前的文件(如果存在)。 我还需要在没有任何提示的情况下运行命令(xcopy喜欢提示我指定的目标名称是文件还是目录,并且还会提示覆盖文件)。

7 个答案:

答案 0 :(得分:52)

xcopy /d我的成绩很好。

它将复制NEWER文件,因为我们可以假设现有文件具有相同的时间戳,所以您只会复制不存在的文件。

答案 1 :(得分:19)

以防万一其他人发现这个: robocopy x:\ sourcefolder Y:\ destfolder / s / e / r:0 / z

比xcopy好得多,甚至在最后给你一个表,告知任何失败或跳过的文件。不提示不覆盖。

答案 2 :(得分:3)

据我所知,没办法让它不会覆盖。但是/ Y会覆盖它。和/我将摆脱文件/字典提示。有关所有选项,请参阅xcopy /?

答案 3 :(得分:3)

您也可以使用replace命令。它有两种模式:添加不存在的文件或替换存在的文件。您想要以前的模式:

replace <path1> <path2> /A

答案 4 :(得分:3)

嗯,有一定的补救措施!在为我们的产品演示编写设置时,它帮助我在Win10上节省了大量的精力和时间。

试着使用滚边:

@ECHO N | COPY / - Y SourceFiles 目的地

作为一个例子,我使用了这段代码,这样我就可以得到一个干净温柔安静的副本!

@FOR /D %%F in ("FooPath") DO @(
   @ECHO N|COPY /-Y ^"%%~npdxF\*.*^" ^"GooPath^" 3>NUL 2>NUL >NUL
)

显然 FooPath 是来源, GooPath 是目的地。

享受!

(主要来源:https://ss64.com/nt/copy.html

答案 5 :(得分:1)

我必须复制并重命名文件,因此我得到了关于创建文件或目录的提示。

这是&#34; hackish&#34;我这样做的方式:

ECHO F | XCOPY /D "C:\install\dummy\dummy.pdf" "C:\Archive\fffc810e-f01a-47e8-a000-5903fc56f0ec.pdf"

XCOPY将使用&#34; F&#34;表明它应该将目标创建为文件:

C:\install>ECHO F   | XCOPY /D "C:\install\dummy\dummy.html" "C:\Archive\aa77cd6e-1d19-4eb4-b2a8-3f8fe60daf00.html"
Does C:\Archive\aa77cd6e-1d19-4eb4-b2a8-3f8fe60daf00.html specify a file name or directory name on the target
(F = file, D = directory)? F
C:\install\dummy\dummy.html
1 File(s) copied

我还验证了此命令单独留下现有文件。 (你也应该: - )

答案 6 :(得分:1)

以下命令复制文件和文件夹,但如果存在则不覆盖文件。

xcopy "*.*" "C:\test\"  /s /y /d