使用批处理文件同步两个文件夹

时间:2014-10-07 19:38:31

标签: batch-file

我想使用批处理文件在Windows上同步2个文件夹,并且我正在使用像这样的xcopy命令

xcopy /s /d <Original Folder> <Destination Folder>

它完美运行是因为我只想覆盖修改后的那些,但是我有一个小问题,当我从原始文件夹中删除文件时,当我运行批处理时该文件仍保留在目标文件夹中文件,打破我想要实现的同步...我认为这不能用xcopy完成,但我不知道在我删除原始文件夹中的文件时应该使用哪个命令。 / p> 编辑:这个程序适合那些不了解很多PC的人,所以我不想在他们的电脑上安装任何东西。只需要一个普通的批处理文件来保持2个文件夹的同步

解决方案:感谢Kuba Wyrostek,我接受了这个命令

robocopy&lt;原始文件夹&gt; &lt;目标文件夹&gt; / e / purge

谢谢大家的时间

5 个答案:

答案 0 :(得分:15)

xcopy没有这样的选择。您的替代方案是:

rsync - http://rsync.samba.org

robocopy - http://technet.microsoft.com/en-us/library/cc733145.aspx

答案 1 :(得分:13)

要优化您的答案,您可以简单地执行以下操作: robocopy <Original Folder> <Destination Folder> /mir

/mir镜像目录树(相当于/e/purge)。

答案 2 :(得分:2)

我知道这是旧的,但我有一个问题。是否可以使用正确的xcopy命令完成此操作。

文件夹1:c:\ workingFolder \“contents here”

文件夹2:d:\ workingFolderSync \“contents here”

下面的批处理文件

xcopy "c:\workingFolder\*.*" "d:\workingFolderSync\" /i /s /d /y
xcopy "d:\workingFolderSync\*.*" "c:\workingFolder\" /i /s /d /y
pause

(我经常在测试后删除暂停并知道批处理工作。) 但是这只会将文件夹中的内容复制到另一个文件夹中。 然后它查找目标文件夹,并将目标中的内容复制回源(如果它更新)。除了对修改文件的实时监控外,这还会重现同步的功能。创建正确的任务计划实际上可以在特定时间运行此命令,以几乎完美地再现同步。您也可以在修改机器之前和在机器上进行修改之后运行此命令。如果您使用网络驱动器进行同步,甚至可以在第二台机器上执行相同的操作。

答案 3 :(得分:1)

用于将更新从一个文件夹复制到另一个文件夹的XCOPY命令如下:

C:\> XCOPY C:/SOURCE D:/DESTINATION /E /D /C /Y

上例中使用的标志具有以下含义:

  • /E会导致复制所有文件夹和子文件夹
  • /D导致进行DATE比较,仅复制比DESTINATION项更新的项目。如果DESTINATION较旧,或者不包含该文件,则会将其复制。
  • /C告诉XCOPY在遇到错误时继续 - 通常只读文件或具有受保护权限的文件发生错误
  • /Y告诉XCOPY禁止提示您进行确认,如果您打算创建自动脚本或计划任务,这是必要的

答案 4 :(得分:0)

您的方法有两个主要问题:

  • 下次运行xcopy时,将从另一个文件夹中留下的副本恢复从一个文件夹中删除的文件
  • 重命名文件会导致结果混乱。