Files
ChildHood/tools/input-setup/setup_input.bat
T
starmen1265 f74883701d fix(tools): 修复setup_input.bat中文编码问题
移除bat文件中的中文注释,改为纯ASCII避免cmd编码错误

Task: P-011
2026-06-10 17:49:28 +08:00

133 lines
3.2 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
REM === ChildHood Input Setup - Create v0.1 InputAction assets + update IMC ===
REM
REM Usage:
REM setup_input.bat (default, editor quits after done)
REM setup_input.bat --no-quit (keep editor open)
set "SCRIPT_DIR=%~dp0"
set "PROJECT_DIR=%SCRIPT_DIR%..\.."
for %%i in ("%PROJECT_DIR%\.") do set "PROJECT_ROOT=%%~fi"
set "UPROJECT=%PROJECT_ROOT%\ChildHood.uproject"
REM ---- Defaults ----
set "NO_QUIT=0"
set "DRY_RUN=0"
REM ---- Parse Arguments ----
:parse_args
if "%~1"=="" goto done_args
if /i "%~1"=="--no-quit" (
set "NO_QUIT=1"
shift
goto parse_args
)
if /i "%~1"=="--dry-run" (
set "DRY_RUN=1"
shift
goto parse_args
)
if /i "%~1"=="--help" goto show_help
if /i "%~1"=="-h" goto show_help
echo [WARN] Unknown argument: %~1
shift
goto parse_args
:done_args
REM ---- Find UE5 Editor ----
set "UE_EDITOR="
if defined UE5_ROOT (
for %%b in (UnrealEditor.exe UE5Editor.exe) do (
if exist "%UE5_ROOT%\Engine\Binaries\Win64\%%b" (
set "UE_EDITOR=%UE5_ROOT%\Engine\Binaries\Win64\%%b"
)
)
)
if "%UE_EDITOR%"=="" (
for %%p in (
"C:\Program Files\Epic Games\UE_5.7"
"C:\Program Files (x86)\Epic Games\UE_5.7"
"D:\Program Files\Epic Games\UE_5.7"
"E:\Program Files\Epic Games\UE_5.7"
) do (
if not defined UE_EDITOR (
for %%b in (UnrealEditor.exe UE5Editor.exe) do (
if exist "%%~p\Engine\Binaries\Win64\%%b" (
set "UE_EDITOR=%%~p\Engine\Binaries\Win64\%%b"
)
)
)
)
)
if "%UE_EDITOR%"=="" (
echo.
echo [ERROR] UE5 Editor not found!
echo Set UE5_ROOT, e.g.: set UE5_ROOT=C:\Program Files\Epic Games\UE_5.7
echo.
exit /b 1
)
REM ---- Path conversion ----
set "SCRIPT_PATH=%SCRIPT_DIR%setup_input_assets.py"
set "SCRIPT_PATH=!SCRIPT_PATH:\=/!"
set "UPROJECT_FWD=!UPROJECT:\=/!"
REM ---- Build command line ----
set "CMD_ARGS=-unattended -NoSound -NullRHI -ExecutePythonScript=!SCRIPT_PATH!"
REM ---- Pass config via env vars ----
set "INPUT_PROJECT_ROOT=!PROJECT_ROOT!"
if "!NO_QUIT!"=="1" set "INPUT_NO_QUIT=1"
REM ---- Print info ----
echo.
echo ============================================
echo ChildHood Input Setup - v0.1
echo ============================================
echo UE5: !UE_EDITOR!
echo Project: !UPROJECT_FWD!
echo Script: !SCRIPT_PATH!
echo ============================================
echo.
REM ---- Dry Run ----
if "%DRY_RUN%"=="1" (
echo [DRY RUN] Command:
echo.
echo "!UE_EDITOR!" "!UPROJECT_FWD!" !CMD_ARGS!
echo.
exit /b 0
)
REM ---- Execute ----
echo [InputSetup] Launching UE5 Editor ...
echo.
"!UE_EDITOR!" "!UPROJECT_FWD!" !CMD_ARGS!
set "EXIT_CODE=!ERRORLEVEL!"
echo.
if "!EXIT_CODE!"=="0" (
echo [InputSetup] Done. Editor exited.
) else (
echo [InputSetup] Editor exit code: !EXIT_CODE!
)
exit /b !EXIT_CODE!
:show_help
echo.
echo ChildHood Input Setup - v0.1
echo.
echo Usage: setup_input.bat [options]
echo.
echo Options:
echo --no-quit Keep editor open after done
echo --dry-run Print command without executing
echo --help, -h Show help
echo.
exit /b 0