ZYLPD2-Filter-Lonelywolf/buildbuild.bat

123 lines
3.4 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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%