植物大战僵尸杂交版游戏数据自动备份,减少闪退损失

编写两个bat脚本

PVZ的数据默认存储位置在:C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata
可能不同电脑,前面的名称会不同,根据具体的路径,修改代码中的路径即可每30秒,将yourdata目录中的所有文件复制备份到同目录的yourdata_bak目录中根据个人需要,可以修改定时的时间,不建议修改的太少,30秒可以了在启动的时候,如果发现PVZ的安装根目录有crash.txt文件,那么删除该文件,并且将yourdata_bak目录中的所有文件,复制到yourdata中覆盖,这样就实现了数据恢复。

  1. 第一个bat脚本 start.bat
@echo off

setlocal enabledelayedexpansion

REM 设置UTF-8编码,防止下面的中文字符显示乱码

chcp 65001 >nul

REM 定义要修改的注册表路径和键值

set regPath=HKEY_CURRENT_USER\Software\PopCap\PlantsVsZombies

set regKey=ScreenMode

set regValue=0

REM 定义备份脚本的名称和路径

set backupScriptName=backup_pvz_data.bat

set backupScriptPath=%~dp0%backupScriptName%

REM 定义崩溃文件的名称和路径

set crashFileName=crash.txt

set crashFilePath=%~dp0%crashFileName%

REM 设置源目录和备份目录,这个路径可能会有不同,根据实际修改

set "sourceDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata"

set "backupDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata_bak"

REM 检查崩溃文件是否存在,如果存在则删除,并且将备份文件复制到源数据目录

if exist "%crashFilePath%" (

    del "%crashFilePath%"

    if exist "%backupDir%" (

        xcopy /s /y "%backupDir%" "%sourceDir%" >nul 2>&1

    )

)

REM 修改PVZ注册表

reg add "%regPath%" /v "%regKey%" /t REG_DWORD /d %regValue% /f

REM 如果上面的命令成功执行,则启动pvzHE-Launcher.exe

if %errorlevel% equ 0 (

    REM 假设pvzHE-Launcher.exe与这个.bat文件在同一个目录下

    start "" "%~dp0pvzHE-Launcher.exe"

    wmic path win32_process where "name='cmd.exe'" get CommandLine | findstr /I /C:"%backupScriptPath%" >nul

    if !errorlevel! neq 0 (

        REM 如果没有找到备份进程,则启动新的 backup_pvz_data.bat 进程

        start "backup_pvz_data" /min "%backupScriptPath%"

    )

) else (

    echo 修改PVZ注册表失败,错误代码:%errorlevel%

    pause

)

endlocal

exit /b
  1. 第二个bat脚本 backup_pvz_data.bat
@echo off

setlocal

REM 设置源目录和备份目录,这个路径可能会有不同,根据实际修改

set "sourceDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata"

set "backupDir=C:\ProgramData\PopCap Games\PlantsVsZombies\pvzHE\yourdata_bak"

REM 设置UTF-8编码,防止下面的中文字符显示乱码

chcp 65001 >nul

echo 正在自动备份PVZ数据,默认每30秒备份一次,关闭本命令窗口后即停止备份(Backing up PVZ data)...

REM 等待5秒,确保游戏已经运行

timeout /t 5 >nul

REM loop backup

:loop

REM 检查 PlantsVsZombies.exe 是否已在运行,不运行则退出

tasklist /fi "imagename eq PlantsVsZombies.exe" | findstr /i "PlantsVsZombies.exe" >nul 2>&1

if %errorlevel% neq 0 (

    exit

)

REM 确保备份目录存在,如果不存在则创建

if not exist "%backupDir%" mkdir "%backupDir%"

REM 执行备份,使用xcopy命令,并直接覆盖已存在的文件

xcopy /s /y "%sourceDir%" "%backupDir%" >nul 2>&1

if %errorlevel% neq 0 (

    echo 备份失败,请检查源目录和备份目录是否存在,是否具有读写权限

    pause

    exit

)

timeout /t 30 /nobreak >nul

REM 返回循环继续备份

goto loop
  1. 将start.bat和backup_pvz_data.bat放到pvz的安装根目录中
    安装图片

  2. 修改桌面的pvz的快捷方式,将启动路径指向start.bat
    在这里插入图片描述

  3. 修改桌面的pvz的快捷方式,将图标指向pvz的安装根目录的logo.ico
    在这里插入图片描述

完成,游戏崩溃时数据自动备份了。

参考链接 https://www.gamersky.com/handbook/202406/1760325.shtml

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值