我的计算机上有一个文件夹,我想每天安排(使用任务计划程序)备份。我想要做的是,如果目标文件夹已经包含源路径中的文件夹(包括子文件夹和文件),它将被跳过并继续复制尚未在目标文件夹中的其他文件夹(我不想要覆盖现有文件夹或子文件夹甚至文件)。我怎么能对我的批处理文件这样做?
例如源文件夹包含:Folder1 Folder2 Folder3
目标文件夹包含: Folder1(源上的相同文件夹) Folder2(源上的相同文件夹)
该命令将仅复制 Folder3。
我的计算机上有一个文件夹,我想每天安排(使用任务计划程序)备份。我想要做的是,如果目标文件夹已经包含源路径中的文件夹(包括子文件夹和文件),它将被跳过并继续复制尚未在目标文件夹中的其他文件夹(我不想要覆盖现有文件夹或子文件夹甚至文件)。我怎么能对我的批处理文件这样做?
例如源文件夹包含:Folder1 Folder2 Folder3
目标文件夹包含: Folder1(源上的相同文件夹) Folder2(源上的相同文件夹)
该命令将仅复制 Folder3。
这会将源镜像到目标并跳过已经存在的文件,但也会删除源中不再存在的文件(从目标) - Vista 和更高版本具有 Robocopy。XP可以下载。
robocopy "c:\source" "d:\target" /mir
或 UNC 路径
robocopy "\\server1\share\" "\\server2\\share2" /mir
有各种备份和复制实用程序可以为您执行此操作,以及许多其他选项。
但是,仅针对您声明的要求,编写 BAT 解决方案很容易......
阅读HELP FOR
,然后尝试这个简单的FOR
命令
for /D %%a in (*) do (
if not exist %dest%\%%a (
echo xcopy /s %%a %dest%
)
)
验证输出,然后删除ECHO