跳转到主要内容

Balatro游戏存档备份和还原脚本

Balatro游戏存档位置

游戏存档位于  C:\Users\你自己的登录账号名\AppData\Roaming\Balatro

image.png

其中AppData是隐藏文件夹,需要在 查看中勾选显示隐藏项目,来显示隐藏文件夹。

image.png

备份还原脚本

备份脚本

@echo off
setlocal

REM 设置游戏存档路径
set "source_folder=C:\Users\fun\AppData\Roaming\Balatro"

REM 设置备份文件存放路径
set "backup_base_folder=C:\Users\fun\Desktop\scripts\backup"

REM 获取当前日期和时间
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set "datetime=%%I"

REM 解析出年月日时分秒数值到对应变量
set "year=%datetime:~0,4%"
set "month=%datetime:~4,2%"
set "day=%datetime:~6,2%"
set "hour=%datetime:~8,2%"
set "minute=%datetime:~10,2%"
set "second=%datetime:~12,2%"

REM 年月日时分秒拼接成为最终的文件夹名称
set "time_name=%year%%month%%day%_%hour%%minute%%second%"

REM 确保备份文件夹存在,如果不存在则创建,以下内容暂时不需要 xcopy会自动创建backup文件夹
REM if not exist "%backup_base_folder%" (
REM     mkdir "%backup_base_folder%"
REM )

REM 复制文件夹到备份文件夹中并重命名
xcopy /s /e /i "%source_folder%" "%backup_base_folder%\%time_name%"

echo Backup completed.
echo from "%source_folder%" to "%backup_base_folder%\%time_name%"

REM 延迟关闭控制台窗口
timeout /t 5 >nul
:end

读档脚本

@echo off
setlocal enabledelayedexpansion

REM 设置游戏存档文件夹
set "source_folder=C:\Users\fun\AppData\Roaming\Balatro"

REM 设置备份文件夹
set "backup_base_folder=C:\Users\fun\Desktop\scripts\backup"

REM 切换到backup文件夹路径
pushd "%backup_base_folder%"

REM 初始化变量以存储最新文件夹的名称和时间
set "latest_folder="
set "latest_datetime=0"

REM 获取所有带有年月日_时分秒格式的文件夹
for /f "delims=" %%a in ('dir /b /ad *_??????') do (
    REM 提取文件夹名称中的日期时间部分
    set "folder_datetime=%%a"
    set "folder_datetime=!folder_datetime:~0,15!"

    REM 比较文件夹名称中的日期时间,更新最新文件夹的信息
    if "!folder_datetime!" gtr "!latest_datetime!" (
        set "latest_folder=%%a"
        set "latest_datetime=!folder_datetime!"
    )
)

REM 判断是否找到符合条件的文件夹
if not defined latest_folder (
    echo No matching folder found.
    exit /b
)

echo latest folder: %latest_folder%

REM 删除游戏存档
if exist "%source_folder%" rmdir /s /q "%source_folder%"

REM 复制最新的备份存档到游戏存档路径上
xcopy /s /e /i "%backup_base_folder%\%latest_folder%" "%source_folder%"

echo Recover success.
echo from "%backup_base_folder%\%latest_folder%" to "%source_folder%"
REM 延迟关闭控制台窗口
timeout /t 5 >nul
:end

清理脚本

@echo off
setlocal enabledelayedexpansion

REM 设置backup文件夹路径
set "backup_base_folder=C:\Users\fun\Desktop\scripts\backup"

REM 设置要保留的备份文件夹数量
set "keep_count=5"

REM 切换到备份文件夹路径
pushd "%backup_base_folder%"

for /f "tokens=*" %%a in ('dir /b /ad /o-n') do (
    set "folder=%%a"
    set /a count+=1
    if !count! gtr %keep_count% (
        echo Deleting old folder: !folder!
        rd /s /q "!folder!"
    )
)

echo Cleanup completed.
REM 延迟关闭控制台窗口
timeout /t 5 >nul
:end

脚本的使用演示