build.bat: default skip cert+sign, fixed arg parsing for PowerShell

This commit is contained in:
youpaishidifu
2026-08-03 12:48:39 +08:00
parent a9b853ec0a
commit eb5a260534
+14 -10
View File
@@ -10,20 +10,24 @@ set "SCRIPT_DIR=%~dp0"
set "PROJECT_DIR=%SCRIPT_DIR%.."
set "PYTHON=%PROJECT_DIR%\.venv311\Scripts\python.exe"
set "SKIP_CERT=0"
set "SKIP_SIGN=0"
REM Default: skip cert and sign (no signtool on most machines)
REM To enable: set SKIP_CERT=0 or SKIP_SIGN=0 before running
set "SKIP_CERT=1"
set "SKIP_SIGN=1"
:parse_args
if "%~1"=="" goto :start_build
set "_arg=%~1"
REM Strip prefix chars: / - --
set "_arg=!_arg:/=! "
set "_arg=!_arg:--=! "
set "_arg=!_arg:-=! "
REM Remove spaces
for /f "tokens=*" %%i in ("!_arg!") do set "_arg=%%i"
if "!_arg!"=="skipcert" set "SKIP_CERT=1"
if "!_arg!"=="skipsign" set "SKIP_SIGN=1"
REM Normalize: remove / -- - prefixes
set "_arg=!_arg:/=!"
set "_arg=!_arg:--=!"
set "_arg=!_arg:-=!"
REM Match (case-insensitive not needed, all lowercase)
if /i "!_arg!"=="skipcert" set "SKIP_CERT=1"
if /i "!_arg!"=="skipsign" set "SKIP_SIGN=1"
REM Also match enable variants
if /i "!_arg!"=="enablecert" set "SKIP_CERT=0"
if /i "!_arg!"=="enablesign" set "SKIP_SIGN=0"
shift
goto :parse_args