@echo off chcp 65001 >nul setlocal EnableDelayedExpansion echo. echo ======================================== echo R0对战平台 增量包生成工具 echo ======================================== echo. :: 检查 R0PatchGenerator.exe 是否存在 if not exist "%~dp0R0PatchGenerator.exe" ( echo [错误] 未找到 R0PatchGenerator.exe echo 请先运行 build.bat 编译项目 echo. pause exit /b 1 ) :: 检查 hdiffz.exe 是否存在 if not exist "%~dp0hdiffz.exe" ( echo [错误] 未找到 hdiffz.exe echo 请将 hdiffz.exe 放在同一目录下 echo. pause exit /b 1 ) :: 询问旧版本目录 echo [1/5] 请输入旧版本目录路径: echo (包含旧版本完整文件的目录) set /p OLD_PATH=^> if "!OLD_PATH!"=="" ( echo [错误] 旧版本目录不能为空 pause exit /b 1 ) :: 去除路径两端的引号 set OLD_PATH=!OLD_PATH:"=! if not exist "!OLD_PATH!" ( echo [错误] 旧版本目录不存在: !OLD_PATH! pause exit /b 1 ) echo. :: 询问新版本目录 echo [2/5] 请输入新版本目录路径: echo (包含新版本完整文件的目录) set /p NEW_PATH=^> if "!NEW_PATH!"=="" ( echo [错误] 新版本目录不能为空 pause exit /b 1 ) :: 去除路径两端的引号 set NEW_PATH=!NEW_PATH:"=! if not exist "!NEW_PATH!" ( echo [错误] 新版本目录不存在: !NEW_PATH! pause exit /b 1 ) echo. :: 询问从版本号 echo [3/5] 请输入旧版本号 (例如: 1.0.0): set /p FROM_VER=^> if "!FROM_VER!"=="" ( echo [警告] 未输入版本号,将使用 "unknown" set FROM_VER=unknown ) echo. :: 询问到版本号 echo [4/5] 请输入新版本号 (例如: 1.0.1): set /p TO_VER=^> if "!TO_VER!"=="" ( echo [警告] 未输入版本号,将使用 "unknown" set TO_VER=unknown ) echo. :: 询问输出文件路径 echo [5/5] 请输入输出文件路径: echo (默认: %~dp0patch_!FROM_VER!_to_!TO_VER!.zip) set /p OUTPUT_PATH=^> if "!OUTPUT_PATH!"=="" ( set OUTPUT_PATH=%~dp0patch_!FROM_VER!_to_!TO_VER!.zip echo 使用默认路径: !OUTPUT_PATH! ) :: 去除路径两端的引号 set OUTPUT_PATH=!OUTPUT_PATH:"=! echo. echo ======================================== echo 生成参数确认 echo ======================================== echo. echo 旧版本目录: !OLD_PATH! echo 新版本目录: !NEW_PATH! echo 旧版本号: !FROM_VER! echo 新版本号: !TO_VER! echo 输出文件: !OUTPUT_PATH! echo. echo ======================================== echo. set /p CONFIRM=确认开始生成? (Y/N): if /i not "!CONFIRM!"=="Y" ( echo. echo 已取消操作 pause exit /b 0 ) echo. echo 正在生成增量包,请稍候... echo. :: 执行生成 "%~dp0R0PatchGenerator.exe" "!OLD_PATH!" "!NEW_PATH!" "!OUTPUT_PATH!" "!FROM_VER!" "!TO_VER!" if %ERRORLEVEL% EQU 0 ( echo. echo ======================================== echo 增量包生成完成! echo ======================================== echo. if exist "!OUTPUT_PATH!" ( for %%A in ("!OUTPUT_PATH!") do ( set /a SIZE_KB=%%~zA / 1024 set /a SIZE_MB=%%~zA / 1048576 ) echo 输出文件: !OUTPUT_PATH! call echo 文件大小: %%SIZE_KB%% KB ^(%%SIZE_MB%% MB^) ) ) else ( echo. echo ======================================== echo 增量包生成失败! echo ======================================== ) echo. pause