贰狐
Windows自动压缩文件夹,备份并上传到网盘
日常生活中有一些需要定期备份的bot目录,但是手动备份太麻烦了,如果用Windows的计划任务搭配bat脚本进行自动备份,并上传到网盘呢?
首先你需要有一个Onedrive或百度网盘。我比较推荐Onedrive是因为可以白嫖。当然,用百度网盘,然后设置某个目录为自动同步的文件夹也是可以的。
微软为每个账号提供空间为5GB的Onedrive,其实也够用了。
如果不够用可以白嫖↓
申请OneDrive 5T 网盘便民方法和邮箱
免费office365教育版A1子号(5Tonedrive网盘),可以自助申请
大功告成,然后复制下面的代码,按说明替换中间的目录,保存成auto_backup.bat
注意:所有目录中不得包含中文
@echo off
::设置7z的命令行程序路径
set zip7=C:\Program Files\7-Zip\7z.exe
::设置压缩包保存路径,即你的onedrive本地路径
set Save=D:\Onedrive\OneDrive - User\BMX_backup
::当天日期,备份文件名
set curdate=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
::设置要打包压缩的文件夹
set zipfile=D:\Mirai_bmx
::备份命令 -xr!.svn过滤\data\image\文件夹 mx0是存储模式压缩
"%zip7%" a -tzip "%Save%\cq_bmx_%curdate%.zip" "%zipfile%" -mx0 -xr"!*\data\image\"
::删除超过7天的备份--start--
forfiles /p "%Save%" /m *.zip -d -7 /c "cmd /c del /f @path"
到这里其实就可以直接设置计划任务,每天定时运行了
不过由于我这里需要对酷Q进行备份,运行中的程序是无法被压缩的。
并且程序长时运行也可能出现问题,所以我们做一个自动重启的步骤。
保存下列代码放在上述代码前面,用于强行结束Mirai(如果是骰子请设置自动保存,不然可能会丢失数据)。
C:\Windows\system32\taskkill.exe /f /im MiraiOK_windows_386.exe
C:\Windows\system32\taskkill.exe /f /im MiraiOK.exe
C:\Windows\system32\taskkill.exe /f /im java.exe</div>
如果是XQ的话,可以用,同样调用Taskkill,但是由于在某些系统上无法执行中文bat,所以需要加CHCP。不过XQ注意定时清理image目录,不然压缩时候会爆炸,几个G的图片在那压缩,可就麻烦了。
echo off
CHCP 65001
echo -------------------------
echo 重启中,请稍后...
echo -------------------------
C:\Windows\system32\taskkill.exe /f /im 先驱.exe
保存下列代码,替换目录成bot的启动快捷方式,用于在备份后顺序启动(而不是开备份脚本的同时就打开了bot)。就起名叫start_mirai.bat吧
start D:\Mirai_bmx\Mirai_bmx.lnk
之后给这两个bat做一个控制开关,复制并替换上面两个脚本的存放位置,起名叫switch_mirai.bat
C:/auto_backup/auto_backup.bat&&;C:/auto_backup/start_mirai.bat
然后将 switch_mirai.bat 放入计划任务或是启动项中
启动项目录可以通过Win+R打开[运行]后输入 shell:startup
来快速打开。
可以在Onedrive网页中将备份的目录设置为共享,这样就能在异地直接下载了!
参考资料
windows bat脚本7zip压缩文件夹,过滤文件夹 - 黑夜的白羊
如何设置2个bat文件严格按照顺序执行 - 百度知道