xcopy是不合逻辑的?

我想使用XCOPY轻松复制脚本,将每个文件夹“同步”到另一个文件夹。

XCOPY C:\hyper-v\VHD\*.avhd Z:\BACKUP\HYPERV_VMs /s /d /c 

我不能设法得到任何提示。 当我select/ y xcopy选项覆盖一切(115GB),所以不好。 我没有看到另一个选项来禁用提示,而不是覆盖现有的文件。

(如果你有一个命令使用另一个命令,做我的客人,也许调整现有的例子)

提前致谢!

Robocopy有更多的select,并在最新的Windows版本中内置。

 robocopy source-dir destination-dir filespec /E /XC /XN /XO 

这只会复制到源dir(在你的例子中是c:\ Hyper-V \ vhd)到符合filespec的文件(例如* .avhd)到destdir(z:\ backup \ hyperv_vms)。 交换机告诉它跳过较旧的,较新的和已更改的文件,以便复制源目录中不存在于目标中的文件。

我使用xcopy / d / e / c / k / y / v / o,它不提供提示,并且如果源与目的地的date相同,则不覆盖现有文件。

/M参数告诉它只复制具有“存档”属性集的文件,并且同时重置该属性。

“归档”位是文件系统的一部分,如“只读”位或“系统文件”位。 它传统上用于老式的“天真”的备份软件,以便它可以告诉自从上次存档以来文件是否被更改过。 任何时候文件被更改(或者将其设置在新创build的文件上),操作系统都应该打开存档位,然后备份软件备份该文件,并将该位closures以显示现在已经存档。

您可以通过在命令提示符下更改为文件夹来查看是否在您的文件上设置了这个设置,并且在第一列中运行attrib任何带有“A”的文件正在等待归档。

我会使用rsync来达到这个目的。 你可以下载一个Windows兼容的二进制文件,或者把它作为Cygwin的一部分(我build议先前的方法,除非你已经安装了Cygwin)。 您可以将文件推送到远程站点或从中拉出。 我更喜欢拉方法,但是会做。

使用pull方法,rsync守护进程将在源服务器上运行; 使用push,rsync守护程序将在目标服务器上运行。 下面是一个pull守护进程configuration文件的例子:

 max connections = 4 port = 873 read only = true write only = false auth users = syncman secrets file = /etc/rsyncd.secrets strict modes = false hosts allow = 192.168.1.8 refuse options = delete [ProjectOne] comment = Jimmy's Project path = C:/projects/project_one [MutualProject] comment = The MUTUAL project path = C:/paid_projects/mutual 

你如何指定path将取决于你使用的rsync端口(例如,cygwin指定的path是这样的:/ cygdrive / c / projects / project_one)。 然后你会从服务器发出这个命令:

 rsync -a -v 192.168.1.15:ProjectOne backups/ProjectOne 

(其中IP地址是源计算机的IP地址)。 如果备份服务器是Windows机器,则需要使用许多cron-for-windows实现之一。

如果您需要推出自己的增量备份,我会build议find适用于Windows的rsync版本,或者将Cygwin与rsync端口一起安装。 它旨在做到这一点,比xcopy有更多的select。

如果我做

 xcopy junk *。* \ TEMP / s / d / c / y

第二次运行时什么都不做,所以不知道为什么你每次都重新复制文件?

我似乎在不同的服务器上有相同的文件,有“less量closures”的时间 – 这可能是原因?