30

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

4

7 回答 7

69

我有很好的结果xcopy /d

它将复制较新的文件,并且由于我们可以假设现有文件具有相同的时间戳,因此您将仅复制不存在的文件。

于 2013-03-18T07:31:30.740 回答
31

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

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

于 2015-01-07T10:29:34.600 回答
7

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

只需尝试使用管道:

@ECHO N|COPY /-Y 源文件 目标

作为一个例子,我使用了这段代码,这样我就有了一个干净、温和、安静和安全的副本!

@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 )

于 2017-08-02T08:57:21.197 回答
4

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

replace <path1> <path2> /A
于 2011-08-11T16:06:51.737 回答
4

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

xcopy "*.*" "C:\test\"  /s /y /d
于 2019-09-03T07:13:29.993 回答
3

据我所知,没有办法让它不被覆盖。但是 /Y 会使其覆盖。和/我将摆脱文件/字典提示。查看xcopy /?所有选项

于 2011-03-01T09:56:16.880 回答
1

我不得不复制和重命名文件,所以我得到了有关创建文件或目录的提示。

这是我做到的,相当“hackish”的方式:

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

XCOPY 将使用“F”表示它应该将目标创建为文件:

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

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

于 2014-03-31T15:10:42.880 回答