You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Batch脚本:如何仅压缩目录中最新或文件名序号最大的文件

Batch游戏存档单文件备份实现

两种筛选逻辑都可以通过原生批处理命令实现,不需要额外工具,直接在原有7z压缩逻辑前加文件筛选步骤即可。


方案1:备份目录内最新修改的存档

适合不关心文件名序号、只需要备份最近一次保存的存档的场景,按文件最后修改时间排序取最新的1个文件压缩。

@echo off
:: ========== 配置项 自行修改为实际路径 ==========
set "ZIP_PATH=D:\7-Zip\7z.exe"
set "SAVE_DIR=你的游戏存档文件夹完整路径"
set "OUT_ARCHIVE=你要保存的压缩包完整路径"
:: ==============================================

set "TARGET="
:: 按修改时间倒序遍历所有Save开头的文件,取第一个即最新文件
for /f "delims=" %%f in ('dir /b /o:-d /a:-d "%SAVE_DIR%\Save*"') do (
    set "TARGET=%%f"
    goto :pick_done
)
:pick_done

if not defined TARGET (
    echo 错误:未找到符合规则的存档文件
    pause
    exit /b 1
)

:: 执行压缩
"%ZIP_PATH%" a "%OUT_ARCHIVE%" "%SAVE_DIR%\%TARGET%"
echo 备份完成,已压缩最新存档:%TARGET%
pause

方案2:备份文件名序号最大的存档

适合存档严格遵循Save 数字命名规则、永远备份序号最高存档的场景,会自动提取文件名后的数字比对大小,取序号最大的文件压缩。

@echo off
setlocal enabledelayedexpansion
:: ========== 配置项 自行修改为实际路径 ==========
set "ZIP_PATH=D:\7-Zip\7z.exe"
set "SAVE_DIR=你的游戏存档文件夹完整路径"
set "OUT_ARCHIVE=你要保存的压缩包完整路径"
:: ==============================================

set "MAX_ID=0"
set "TARGET="
:: 遍历所有Save开头的文件,拆分文件名提取数字序号
for /f "tokens=1,2 delims= " %%a in ('dir /b /a:-d "%SAVE_DIR%\Save*"') do (
    :: 校验后缀是否为纯数字,跳过不符合命名规则的文件
    echo %%b| findstr /r "^[0-9][0-9]*$" >nul
    if !errorlevel! equ 0 (
        if %%b gtr !MAX_ID! (
            set "MAX_ID=%%b"
            set "TARGET=%%a %%b"
        )
    )
)

if not defined TARGET (
    echo 错误:未找到符合序号命名规则的存档文件
    pause
    exit /b 1
)

:: 执行压缩
"%ZIP_PATH%" a "%OUT_ARCHIVE%" "%SAVE_DIR%\%TARGET%"
echo 备份完成,已压缩最大序号存档:%TARGET%(序号:!MAX_ID!)
pause
endlocal

使用注意事项

  • 如果存档带固定后缀(比如.sav/.dat),可以把遍历规则里的Save*改成Save*.sav,避免把无关文件纳入筛选范围。
  • 如果需要保留多份历史备份不覆盖,可以把压缩包路径改成带时间戳的格式,例如:
    set "OUT_ARCHIVE=D:\Backup\game_save_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%.7z"
    
    每次运行会自动生成带年月日时分的独立压缩包。

调试技巧:首次运行前,可以在7z压缩命令前加echo,先打印出待压缩的文件路径,确认筛选的文件符合预期后,再去掉echo执行实际压缩,避免误压。

内容的提问来源于stack exchange,提问作者Cerulium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:03:24