【发布时间】:2016-03-29 15:04:39
【问题描述】:
我是一个新手,但我试图创建一个批处理文件来读取源的文件夹内容,将文件与目标进行比较,备份匹配项,然后将源文件移动到目标。我猜在某种程度上,源目录中的文件内容起到了掩码的作用。
有没有我可以使用的技术来获得这个结果?我试过 Robocopy 和 XCopy 接近但不是我想要的。 XCopy 有一个排除选项,但这与我需要的相反。任何建议将不胜感激。
设置是这样的:
这些文件夹包含这个
Parent_folder_new
Folder1 Folder2 Folder3
File1 File1 File1
File2 File2 File2
File3 File3 File3
我有新文件来替换旧文件:
Parent_folder_old
Folder1 Folder2 Folder3
File2 File1 File1
File3 File3
在源文件覆盖目标文件之前,我只需要备份即将被覆盖的文件。
我尝试了一个 if 语句,但我不知道该去哪里
Set folder[1]=folder1
Set folder[2]=folder2
Set folder[3]=folder3
for F "tokens=2 delims==" %%f in ('set folder[') do (
if Parent_folder_new\%%f==Parent_folder_old\%%f
::copy results of if statement to Parent_folder_backup\%%f
)
我希望这能在一定程度上澄清我正在尝试做的事情。
【问题讨论】:
-
请分享您的尝试并准确描述您遇到的问题,然后我们可能会为您提供帮助。
-
我更新了细节,希望对你有帮助
-
您的方法似乎有点不灵活,因为父位置中可能有 3 个以上的文件夹;是只有一个目录级别,还是更深的树?如果后者为真,您是否只想处理第一级目录而忽略更深层次的项目?无论如何,如果我理解正确,您可以使用
xcopy /L /U获取将被复制的文件列表(/L告诉xcopy仅列出项目但不复制任何项目)并将其用作备份的输入工作,然后使用xcopy /U(这次没有/L切换真正复制)...
标签: batch-file copy xcopy robocopy backup-strategies