123 lines
3.4 KiB
Batchfile
123 lines
3.4 KiB
Batchfile
@echo off
|
||
setlocal EnableExtensions
|
||
title BadWolf 过滤器构建工具
|
||
|
||
rem ============================================================
|
||
rem BadWolf 过滤器构建入口 build.bat v1.2
|
||
rem 本文件为 GBK(cp936) + CRLF 编码;改文案请保持该编码,否则中文乱码。
|
||
rem ============================================================
|
||
|
||
rem ---- 记录原代码页,退出前还原。本文件是 GBK,控制台非 936 先切过去。
|
||
rem chcp ^<nul 让子进程不继承标准输入,否则 set /p 会少读一行。
|
||
set "OLDCP="
|
||
for /f "tokens=2 delims=:" %%a in ('chcp ^<nul') do set "OLDCP=%%a"
|
||
if defined OLDCP set "OLDCP=%OLDCP: =%"
|
||
chcp 936 <nul >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 >nul 2>nul
|
||
exit /b %RC%
|