有什么方法可以xcopy刚刚更改的文件或新文件?


57

我正尝试将网站从桌面部署到Web服务器,因此现在我正在这样做:

 xcopy C:\source X:\destination /s

我的桌面是Windows XP计算机,我需要复制到Windows Server 2008计算机,但这会复制所有内容,整个站点非常大,并且完成复制需要很长时间。

有没有一种方法专门复制新文件或更新文件?我看到您可以输入一个自更改日期起的日期,但是我想看看是否有一种更简单的方法可以与目标文件进行比较...

另外,我愿意使用xcopy以外的任何可以完成这项工作的东西...


5
您也可以尝试Robocopy。
Joerage 2011年

Answers:


97

XCOPY文档中

/ d [:mm-dd-yyyy]:仅复制在指定日期或之后更改的源文件。如果不包括mm-dd-yyyy值,则xcopy复制所有比现有目标文件新的源文件。通过此命令行选项,您可以更新已更改的文件。

因此,以您的示例为例:

xcopy C:\source X:\destination /s /d

2
“ / d”似乎必须给它一个日期。正如问题中提到的,我没有考虑截止日期。我只想复制新文件和更新文件
leora 2011年

10
不,日期是可选的!这就是为什么它放在方括号中。您实际上读过那行吗?它说它确实可以完成您想要的操作!
标记

4
唯一需要注意的是,Web服务器和工作站设置为同一时间!如果他们两个都不使用NTP,则可能会丢失文件或复制过多的文件。
Carf 2011年

5
虽然精确的文档指出,它很容易被忽略的/d,因为它并不显着,该日期是可选的,再看看其他的选择,并认为有没有解决方案。:-)
斯特凡·古里康

1
如果目标文件夹中不存在文件,则似乎没有指定日期的/ D会复制该文件,这可能不是预期的结果。
tbone

24

Robocopy也是一个很好的选择:

默认情况下,Robocopy仅在源和目标具有不同的时间戳或不同的文件大小时才复制文件。

此外,您还可以做更多的事情-mirror命令对于删除文件的网站也很方便。


感谢您提到robocopy-学习一些可用的新实用程序总是很高兴。
卡斯珀·莱昂·尼尔森

3

使用/ A选项。所有新文件或修改过的文件都将设置存档属性。

检查以下链接以获取详细信息:

Xcopy命令语法和示例


1
是的,但除非你xcopy /M,那么源文件将仍然有你复制后它们存档属性设置,而下一次将被复制为好。需要对源文件的写访问权。
Nigel Touch

2

我安排了约80k个文件和约2k个文件夹的以下任务:

xcopy \\sourceserver\share\ Q:\backuptarget\folder\ /i /d /y /he /C /EXCLUDE:C:\backup\list.txt > C:\backup\backup.log

/ C选项将继续执行复制操作,即使由于打开了文件或文件夹或您在运行此计划任务的服务帐户下没有权限也无法对文件或文件夹进行“访问被拒绝”。

如果要追加,则“>”会覆盖日志,您可以使用“ >>”管道。


0

rsync,但是我没有在Windows上使用过。我通常在Linux上使用它的方式是:

rsync -avuz src/ remote:dst/

仅发送更新(新文件和修改过的文件)。


-1

BitTorrent Sync表现出色。每当您更改文件时,它将自动更新。点对点。如果需要,一次更新多个位置。易于使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.