@echo off setlocal EnableExtensions title BadWolf 过滤器构建工具 rem ============================================================ rem BadWolf 过滤器构建入口 build.bat v1.2 rem 本文件为 GBK(cp936) + CRLF 编码;改文案请保持该编码,否则中文乱码。 rem ============================================================ rem ---- 记录原代码页,退出前还原。本文件是 GBK,控制台非 936 先切过去。 rem chcp ^nul 2>nul set "RC=0" set "HERE=%~dp0" set "PS1=%HERE%build.ps1" set "MENU=" if "%~1"=="" set "MENU=1" if not exist "%PS1%" goto nops1 if /i "%~1"=="help" goto help if "%~1"=="/?" goto help if "%~1"=="?" goto help if defined MENU goto menu goto run rem ---------------------------------------------------------------- 菜单 :menu cls echo ============================================================ echo BadWolf 过滤器构建工具 echo ============================================================ echo. echo 1. 校验 只读检查,不写任何文件 echo 2. 构建 按模块重建合并版,自动备份,只留最近 2 份 echo 3. 行号换算 合并版行号 与 模块行号 互相换算 echo 4. 导出 生成行号映射表 echo 0. 退出 echo. set "SEL=" set /p "SEL=请输入序号后回车,直接回车 = 校验:" if "%SEL%"=="0" goto done if "%SEL%"=="2" goto mBld if "%SEL%"=="3" goto mMap if "%SEL%"=="4" goto mExp goto mChk :mChk set "ARGS=check" goto run2 :mBld set "ARGS=build" goto run2 :mMap echo. set "Q=" set /p "Q=请输入行号,例如 1939 或 16:139,直接回车返回菜单:" if "%Q%"=="" goto menu set "ARGS=map %Q%" goto run2 :mExp set "ARGS=export" goto run2 rem ---------------------------------------------------------------- 执行 :run set "ARGS=%*" :run2 echo. powershell -NoProfile -ExecutionPolicy Bypass -File "%PS1%" %ARGS% set "RC=%ERRORLEVEL%" echo. if "%RC%"=="0" echo [完成] 退出码 0:校验通过 if "%RC%"=="1" echo [注意] 退出码 1:发现问题,见上面的 x 项或差异块 if "%RC%"=="2" echo [失败] 退出码 2:环境问题,缺文件或模块编号重复 if not defined MENU goto done echo. pause goto menu rem ---------------------------------------------------------------- 帮助 :help echo. echo BadWolf 过滤器构建脚本 命令行用法 echo. echo build.bat 打开菜单 echo build.bat check 校验,不写文件 echo build.bat build 重建合并版,自动备份 echo build.bat map 1939 合并版行号 转 模块行号 echo build.bat map 16:139 模块行号 转 合并版行号 echo build.bat export 导出行号映射表 echo. echo 附加参数 echo -NoBackup build 时不备份原文件 echo -KeepBackups 3 备份保留份数,默认 2 echo -Strict 有提示项也算不通过 echo. echo 退出码 0 通过 1 有问题 2 环境问题 echo. goto done rem ---------------------------------------------------------------- 缺文件 :nops1 echo. echo [错误] 同目录下找不到 build.ps1 echo 请确认 build.bat 与 build.ps1 放在同一个文件夹里。 echo. pause set "RC=2" goto done :done if defined OLDCP chcp %OLDCP% nul 2>nul exit /b %RC%