Windows | 定时备份 | 自动备份文件夹

bat方式适合设置开机启动

VBScript方式适合定时任务,每天几点几分

配合微软E5 5T OneDrive账号使用,异盘备份+云端备份

为什么不用OneDrive的备份因为他会把文件移动到你设置的盘符

从此你多了一个5T的云端备份,可以添加任何路径文件夹

以下脚本属于增量备份,只复制新文件,自动删除源文件夹删除的文件。

BAT方式

当你想要将 robocopy 命令写入一个批处理文件(.bat)时,你可以创建一个文本文件,然后将以下命令复制粘贴到文件中,最后将文件保存为 .bat 格式。

@echo off
robocopy "C:\Users\789cn\Documents" "E:\OneDrive - 789cn\Auto backup\Documents" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Documents.log"
@echo off
robocopy "C:\Users\789cn\Pictures" "E:\OneDrive - 789cn\Auto backup\Pictures" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Pictures.log"
@echo off
robocopy "C:\Users\789cn\Desktop" "E:\OneDrive - 789cn\Auto backup\Desktop" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Desktop.log"
@echo off
robocopy "C:\Users\789cn\Saved Games" "E:\OneDrive - 789cn\Auto backup\Saved Games" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Saved Games.log"
在这个批处理文件中
  • @echo off 是用来关闭命令行的命令回显,从而使运行时不会在命令窗口中显示每个命令。
  • robocopy: 这是一个强大的 Windows 命令行工具,用于复制文件和目录。在这里,它被用于从源目录复制文件到目标目录,实现同步备份。
  • "C:\Users\789cn\Documents": 这是源目录,即要备份的原始文件夹的路径。
  • "E:\OneDrive - 789cn\Auto backup\Documents": 这是目标目录,即备份文件要复制到的目标文件夹的路径。
  • /MIR: 这个选项表示镜像模式,它会确保目标目录和源目录的内容相同,包括删除目标目录中不再存在于源目录中的文件。
  • /W:0: 这个选项设置等待时间为 0 秒。如果出现问题,robocopy 将等待 0 秒后重试。
  • /R:1: 这个选项设置重试次数为 1。如果在第一次尝试后未成功,robocopy 将尝试再次复制文件。
  • >: 这个符号用于将命令的输出重定向到文件。
  • "E:\OneDrive - 789cn\Auto backup\backup_Documents.log": 这是用于存储 robocopy 命令输出的文件路径,即备份日志的位置。

你可以保存这个文件并随时运行它,或者将其添加到任务计划程序中以定期执行。确保在运行批处理文件之前备份重要数据,以免意外删除或更改文件。

最好将整个路径用双引号括起来,以确保 robocopy 正确解释路径。

整合一起
@echo off

robocopy "C:\Users\789cn\Documents" "E:\OneDrive - 789cn\Auto backup\Documents" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Documents.log"

robocopy "C:\Users\789cn\Pictures" "E:\OneDrive - 789cn\Auto backup\Pictures" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Pictures.log"

robocopy "C:\Users\789cn\Desktop" "E:\OneDrive - 789cn\Auto backup\Desktop" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Desktop.log"

robocopy "C:\Users\789cn\Saved Games" "E:\OneDrive - 789cn\Auto backup\Saved Games" /MIR /W:0 /R:1 > "E:\OneDrive - 789cn\Auto backup\backup_Saved Games.log"

在任务计划程序中设置开机启动运行 bat 文件的步骤如下:

  1. 打开任务计划程序: 在 Windows 搜索栏中输入 "任务计划程序",然后点击打开。
  2. 创建基本任务: 在右侧的 "操作" 面板中选择 "创建基本任务..."。
  3. 设置名称和描述: 输入一个名称和描述,然后点击 "下一步"。
  4. 选择触发器: 选择 "启动时" 作为触发器,然后点击 "下一步"。
  5. 选择启动程序: 选择 "启动程序" 作为操作,然后点击 "下一步"。
  6. 选择程序和参数:

    • 在 "程序/脚本" 中浏览并选择你的 bat 文件的完整路径。
    • 如果 bat 文件需要特定的工作目录,请在 "起始于" 中指定该目录。
  7. 完成设置: 点击 "完成" 完成设置。

这样,你的任务就会被创建,并在系统启动时运行你的 bat 文件。请确保 bat 文件中的路径和命令是正确的,并且文件没有语法错误。

日记如下
                  总数        复制        跳过       不匹配        失败        其他
       目录:        98         2        96         0         0         0
       文件:       639        17       622         0         0         0
       字节:   8.163 g    2.81 m   8.160 g         0         0         0
       时间:   0:00:00   0:00:00                       0:00:00   0:00:00


       速度:           327,416,777 字节/秒。
       速度:            18,734.938 MB/分钟。
   已结束: 2024年1月18日 8:20:23

VBScript 方式

你可以通过使用 VBScript 或 PowerShell 脚本等方法来隐藏命令窗口。以下是使用 VBScript 的一个示例:

  1. 创建一个新的文本文件,将以下内容复制并粘贴进去:
Set objShell = WScript.CreateObject("WScript.Shell")

' First robocopy command
objShell.Run "cmd /c robocopy ""C:\Users\789cn\Documents"" ""E:\OneDrive - 789cn\Auto backup\Documents"" /MIR /W:0 /R:1 > ""E:\OneDrive - 789cn\Auto backup\backup_Documents.log""", 0, True

' Second robocopy command
objShell.Run "cmd /c robocopy ""C:\Users\789cn\Pictures"" ""E:\OneDrive - 789cn\Auto backup\Pictures"" /MIR /W:0 /R:1 > ""E:\OneDrive - 789cn\Auto backup\backup_Pictures.log""", 0, True

' Third robocopy command
objShell.Run "cmd /c robocopy ""C:\Users\789cn\Desktop"" ""E:\OneDrive - 789cn\Auto backup\Desktop"" /MIR /W:0 /R:1 > ""E:\OneDrive - 789cn\Auto backup\backup_Desktop.log""", 0, True

' Fourth robocopy command
objShell.Run "cmd /c robocopy ""C:\Users\789cn\Saved Games"" ""E:\OneDrive - 789cn\Auto backup\Saved Games"" /MIR /W:0 /R:1 > ""E:\OneDrive - 789cn\Auto backup\backup_Saved Games.log""", 0, True
  1. 将文件保存为 .vbs 扩展名,例如 backup_script.vbs
  2. 双击运行 backup_script.vbs 脚本文件。

这样做将使用 VBScript 的 objShell.Run 方法来执行 robocopy 命令,参数中的 0 将窗口样式设置为隐藏。这样,robocopy 命令将在后台运行,而不会弹出命令窗口。

  1. 将你的 VBScript 文件保存在你选择的位置,例如 backup_script.vbs
  2. 打开任务计划程序(你可以在控制面板中找到,或者在开始菜单中搜索)。
  3. 在右侧操作窗格中点击“创建基本任务...”。
  4. 按照向导设置任务的名称和描述。
  5. 选择触发器类型(例如“每天”当用户登陆时),并设置任务运行的具体时间。
  6. 选择“启动程序”动作。
  7. 浏览并选择 wscript.exe 作为程序/脚本,将参数设置为你的 VBScript 文件的完整路径
  8. (例如"E:\OneDrive - 789cn\Auto backup\backup_all_script.vbs”)。引号也要。
  9. 在大多数 Windows 系统中,wscript.exe 的路径为:C:\Windows\System32\wscript.exe
  10. 完成向导,点击“完成”创建任务。

现在,你的 VBScript 将在指定的时间每天运行,并执行用于备份的 robocopy 命令。确保在依赖于计划任务之前先手动测试它,以确保一切按预期工作。

789cn