植物大战僵尸杂交版「用户数据备份」
最近潜艇伟伟迷的植物大战僵尸杂交版想必大家都玩了吧,反正我玩了感觉挺好玩!并且还在不同的电脑上玩,这就需要在不同的电脑上同步数据!
我在家里有个 Win 电脑 💻,上班的时候用的 Mac,一般我都是在家玩了以后,把用户数据打包然后传到网盘上,如果想要在其他电脑上玩的话,先把网盘上的数据拿下来,在这个数据基础上继续玩。
只要替换数据目录就可以啦,因为这个游戏是能记录进度的,比如玩生存模式,你今天玩了 100 关,只要拿着用户数据在其他设备上就可以继续在这 100 关的基础上继续玩!
但是这个过程有点复杂,每次我都 需要压缩用户目录的数据,然后上传网盘,然后在其他机器下载、覆盖、然后继续玩!
这个过程可以简化一下:
需要两个脚本:一个打包脚本;一个下载脚本;
A 设备:打包脚本一键打包用户数据目录为 zip,上传到一个存储位置。 B 设备:下载脚本一键下载 zip,覆盖用户数据目录,开玩,玩完之后再一键打包上传。
因为我不会俩个设备同时玩,所以这样就可以了!并且都是 Win 系统(Mac 使用 Win 虚拟机)!
依赖软件
这里需要依赖:
压缩软件7zip 和 使用了支持 WebDAV infini-cloud 网盘 。
注册好了 infini-cloud 之后,需要开启 WebDAV 。得到 ConnectionID 和 密码。
然后在文件列表页面,新建一个文件夹用户存放数据。比如:PlantsVsZombies
打包脚本
接下来就是具体的脚本代码,脚本名称:PlantsVsZombies-Bak.bat 。
@echo off
setlocal
:: 获取当前日期和时间
for /f "tokens=2 delims==" %%a in ('wmic os get localdatetime /value') do set "dt=%%a"
:: 提取年、月、日、小时、分钟、秒
set "year=%dt:~0,4%"
set "month=%dt:~4,2%"
set "day=%dt:~6,2%"
set "hour=%dt:~8,2%"
set "minute=%dt:~10,2%"
set "second=%dt:~12,2%"
:: 组合成所需的格式 %year%%month%%day%%hour%%minute%%second%
set "formattedDate=%year%%month%%day%"
:: 输出格式化的日期
echo %formattedDate%
set "source=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata"
set "destination=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata%formattedDate%.zip"
:: 7zip 执行压缩
"C:\Program Files\7-Zip\7z.exe" a -tzip "%destination%" "%source%\*"
echo filePath:"%destination%"
:: 上传 infini-cloud
curl -T "%destination%" -u user:pwd -X PUT "https://bora.teracloud.jp/dav/PlantsVsZombies/yourdata%formattedDate%.zip"
echo "Success!"
@pause
endlocal
这个脚本需要修改几处位置:
- 7zip 程序的路径:
C:\Program Files\7-Zip\7z.exe
; - 程序用户数据目录:
C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata
; - 压缩包存放目录:一般和上个路径同级,
C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata%formattedDate%.zip
使用了时间戳命名; - infini-cloud :用户名、密码、文件存放路径。
然后执行,如下所示及标识成功!同名文件会直接覆盖!
下载脚本 ❌
因为文件是按照时间戳命名的,所以下载的时候需要判断下列表,感觉很麻烦。要不然就把文件名写死,感觉有不太好。
所以就没有写这个脚本,但是支持 WebDAV 协议的网盘都可以作为网络设备挂载,所以只需要把网盘挂载到电脑上就可以拿到文件了。
挂载很简单了,右键添加一个网络位置,输入上面获得的用户名和密码即可。
成功后,就可直接访问拿到你备份的文件了!
那么我就可以在电脑上使用这个脚本愉快的一键备份数据文件了!