日常生活中有一些需要定期备份的目录,但是手动备份太麻烦了,如果用Windows的计划任务搭配bat脚本进行自动备份,并上传到网盘呢?

首先你需要有一个Onedrive或百度网盘。我比较推荐Onedrive是因为可以用Raidrive映射成本地磁盘,方便直接上传。当然,用百度网盘,然后设置某个目录为自动同步的文件夹也是可以的。

微软为每个账号提供空间为5GB的Onedrive,其实也够用了。

如果不够用...emmm,5T够吗?

 申请OneDrive 5T 网盘便民方法和邮箱
 免费office365教育版A1子号(5Tonedrive网盘),可以自助申请 

Raidrive官网下载安装包

7-Zip官网下载安装包

Windows自动压缩文件夹,备份并上传到网盘

安装Raidrive时需要安装.NET Framework 4.8。有可能时间会比较长,需要耐心等待,最好不要结束进程,不然可能需要重启才能继续安装。也可以提前去微软官网直接下载脱机包安装:

适用于 Windows 的 Microsoft .NET Framework 4.8 脱机安装程序

安装 .NET Framework 4.8 之后会重启一次,开机后弹出Raidrive安装程序,无脑下一步就可以了。

运行Raidrive Center

点击加号,选择Onedrive,OK

Windows自动压缩文件夹,备份并上传到网盘

点击OK会跳转到Microsoft登录页面。(如果提示账户不存在,请检查是否为企业账户。企业账户需要在Raidrive处切换到Business选择Onedrive Business 然后继续操作。

登录完成后在 我的电脑 里就可以看到Onedrive的映射盘了

Windows自动压缩文件夹,备份并上传到网盘

之后安装一下 7-Zip

大功告成,然后复制下面的代码,并按说明替换中间的目录,保存成auto_backup_bmx.bat

注意:所有目录中不得包含中文

@echo off
::设置7z的命令行程序路径
set zip7=C:\Program Files\7-Zip\7z.exe
::设置压缩包保存路径
set Save=Z:\CQbackup
::当天日期,备份文件名
set curdate=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
::设置要打包压缩的文件夹
set zipfile=D:\CQ_bmx
 
::备份命令 -xr!.svn过滤.svn文件夹
"%zip7%" a -tzip "%Save%\cq_bmx_%curdate%.zip" "%zipfile%" -mx0 -xr!.svn

//如果是保存在本地,需要自动清理的话可在最底下添加

::删除超过7天的备份--start--
forfiles /p "%Save%" /m *.zip -d -7 /c "cmd /c del /f @path"

到这里其实就可以直接设置计划任务,每天定时运行了

由于我这里需要对酷Q进行备份,但是运行中的程序是无法压缩的。

但是我的服务器是每天都会定时自动重启一次,所以我将这个脚本当作启动CQ的前置程序去运行,这样就可以正好规避运行中无法压缩的问题了。

保存下列代码,替换目录成CQ的启动快捷方式,用于在备份后顺序启动CQ(而不是开备份脚本的同时就打开了CQ)。起名叫start_cq_bmx.bat

start D:\CQ_bmx\626533534.lnk

之后给这两个bat做一个控制开关,复制并替换上面两个脚本的存放位置,起名叫switch_bmx.bat

C:/auto_backup/auto_backup_bmx.bat&&;C:/auto_backup/start_cq_bmx.bat

然后将 switch_bmx.bat 放入启动项中

启动项目录可以通过Win+R打开[运行]后输入 shell:startup 来快速打开。

这里我遇到了一个问题,由于Raidrive启动比脚本慢,所以我自动启动脚本后,Z盘还没有映射到我的电脑,导致备份程序一直运行失败。

所以后面索性直接使用Onedrive官方客户端,然后设置刚才脚本中的备份目录为

::设置压缩包保存路径(也就是安装Onedrive时设置的目录)
set Save=D:\Onedrive\CQbackup

自动备份完成,该脚本会在每次开机自动运行。注意此时应该将CQ的开机自启关闭,由脚本接管打开CQ的动作。另外为了防止数据丢失,可以设置在重启前几分钟,让Dice!定时保存数据(未实装功能)或用其他bot互相遥控发送.system save。

可以在Onedrive网页中将备份的目录设置为共享,这样就能在异地直接下载了!

参考资料
windows bat脚本7zip压缩文件夹,过滤文件夹 - 黑夜的白羊 
如何设置2个bat文件严格按照顺序执行 - 百度知道

知名杠精,一窍不通