使用批处理文件将目录上的文件夹和子文件夹复制到另一个目录

时间:2013-09-01 20:09:32

标签: command-line batch-file

我的计算机上有一个文件夹,我想每天安排(使用任务调度程序)备份。我想要做的是,如果目标文件夹已经包含源路径中的文件夹(包括子文件夹和文件),它将被跳过并继续复制目标文件夹中尚未存在的其他文件夹(我不想要覆盖现有文件夹或子文件夹甚至文件)。我怎么能这样做我的批处理文件?

e.g。 源文件夹包含: 文件夹1 文件夹2 Folder3

目标文件夹包含: Folder1(源上的相同文件夹) Folder2(源上的相同文件夹)

该命令仅复制Folder3。

2 个答案:

答案 0 :(得分:8)

这会将源镜像到目标并跳过已存在的文件,但也会删除源中不再存在的文件(来自目标) - Vista及更高版本具有Robocopy。 XP可以下载它。

robocopy "c:\source" "d:\target" /mir

或UNC路径

robocopy "\\server1\share\" "\\server2\\share2" /mir

答案 1 :(得分:1)

有各种备份和复制实用程序可以执行此操作,还有许多其他选项可供您使用。

但是,只是为了满足您的要求,编写BAT解决方案很容易......

阅读HELP FOR,然后尝试这个简单的FOR命令

for /D %%a in (*) do (
  if not exist %dest%\%%a (
    echo xcopy /s %%a %dest%
  )
)

验证输出,然后删除ECHO