在 Windows 8/10 中自动批量复制文件和目录并重命名文件的最佳语言/系统?

在 Windows 8/10 中自动批量复制文件和目录并重命名文件的最佳语言/系统?

Robocopy 已经非常接近了,但缺少复制时的文件重命名功能。所以,能否请大家为我介绍一种适合以下情况的 Windows 语言或系统:

这是一个简单、基本的备份计划,适用于家庭网络,其中包含几台 Win8/10 笔记本电脑和 PC 以及一个中央网络驱动器(连接到路由器 USB 端口的 USB 外部驱动器)。几乎所有要备份的文件都是图像、视频或音乐 - 因此已经压缩,因此没有必要使用带有压缩功能的商业备份软件。另外,我不希望我的文件被封装在专有的备份文件格式中。我只需要副本。

我正在想象一个命令 shell 批处理文件,或者 VBScript,或者.....

理想的系统将允许我计划将计算机上选定的文件夹(包括其所有子文件夹)备份到网络驱动器上的相应文件夹中。在对每个文件夹进行初始完整备份后,系统将执行增量备份。这些增量备份实际上只是复制任何新文件,并使用自上次备份以来发生更改的任何文件的索引文件名制作新副本。就是这样。

正如我所说,批处理文件中的 Robocopy 很接近,但无法重命名文件。我不想创建具有索引名称的新文件夹 - 我希望将重命名的文件全部放在原始文件夹中。

我可能要花几个月的时间研究和学习所有可能的 Windows 命令和系统,希望能找到可以做到这一点的东西。我已经花了好几天时间研究备份软件和 Robocopy。所以我希望这个论坛能给我指明正确的方向,让我找到具有必要命令和功能的东西。

谢谢。

答案1

在每个

这听起来像是 robocopy 的理想情况;听起来你对此有点困惑:

..增量备份实际上只是复制任何新文件,并使用自上次备份以来发生更改的任何文件的索引文件名制作新副本。

为了处理这种情况,我将使用FC循环来比较文件是否存在于完整备份中,如果存在,则单独copy比较它并包含修改后的名称。


因此,为了进行设置,我需要确定:

  1. 您希望多久进行一次完整备份,以及是否应删除源文件夹中不再存在的内容,以及
  2. 如果不是手动的话,您希望多久进行一次增量备份。

在这两种情况下,我都可能会在 Windows 中设置一个计划任务来运行所需的批处理文件。任一脚本的复杂性都将由您的目录结构决定,但在大多数情况下,您的增量备份逻辑大致如下:

@echo off

set "dir=C:\Your\Directory"
set "bkp=N:\Your\Backup\Drive"

for %%A in (%dir%\*) do (
    if exist "%bkp%\%%~nxA" (
        fc "%%A" "%bkp%\%%~nxA"
        if %ERRORLEVEL% EQU 1 (copy /y "%%A" "%bkp%\%%~nA MODIFIED%%~xA")
        )
    )
)

您可以使用参数扩展和不同的for选项根据目录的设置方式自定义循环。如果您不想通过 robocopy 删除任何内容,只需使用robocopy "source" "destination" /e- 您还可以循环 robocopy 以for一次执行单个文件夹而不是根目录 - 这样,如果您希望获得更细致的可见性,您可以为每个文件夹生成一个日志文件。

参考:机器人复制足球俱乐部为了复制参数

相关内容