【问题标题】:Backing up specific files before replacing them based on source folder contents in batch根据源文件夹内容批量替换特定文件前备份
【发布时间】: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


【解决方案1】:

我会用它来复制文件

copy /y C:\path\folder1 C:\destination

这个用于移动它

move /y C:\path\folder1 C:\destination

您必须将文件夹 1 更改为您想要的任何文件夹。我用它来备份我的拇指驱动器。

echo off
:start
echo What folder/files do you want to copy?
set /p copy=:
echo Is %copy% correct? (Y/N)
echo Note: This must be a directory path.
set /p final=:
if %final% == Y goto desRequest
if %final% == N goto start
:desRequest
echo Destination?
set /p destination=:
echo Is %destination% correct? (Y/N)
set /p finalDes=:
if %finalDes% == Y pause
if %finalDes% == N goto desRequest
echo Copying...
copy /y %copy% %destination%
echo Copied!
pause
cls
goto start

只需将其复制到 name.bat 文件中即可!

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 2021-06-29
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多