Files
SpineParticlesWeb/connector/launchers/windows/停止Spine连接器.bat
T
2026-09-05 16:20:23 +08:00

28 lines
1.2 KiB
Batchfile

@echo off
chcp 65001 >nul
setlocal
set "PACKAGE_DIR=%~dp0"
set "PID_FILE=%PACKAGE_DIR%.run\spine-connector.pid"
set "CONNECTOR_BIN=%PACKAGE_DIR%SpineParticleConnector.exe"
set "CONNECTOR_PID="
if exist "%PID_FILE%" set /p CONNECTOR_PID=<"%PID_FILE%"
powershell -NoProfile -Command ^
"$pidValue=0; [void][int]::TryParse($env:CONNECTOR_PID,[ref]$pidValue);" ^
"$process=if($pidValue -gt 0){Get-CimInstance Win32_Process -Filter ('ProcessId = ' + $pidValue) -ErrorAction SilentlyContinue};" ^
"if($null -eq $process){$listener=Get-NetTCPConnection -LocalPort 27843 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if($listener){$process=Get-CimInstance Win32_Process -Filter ('ProcessId = ' + $listener.OwningProcess) -ErrorAction SilentlyContinue}};" ^
"if ($null -eq $process) { exit 2 };" ^
"if ($process.CommandLine -notlike ('*' + $env:CONNECTOR_BIN + '*')) { exit 3 };" ^
"Stop-Process -Id $process.ProcessId -Force"
set "STOP_RESULT=%ERRORLEVEL%"
del /q "%PID_FILE%" >nul 2>&1
if "%STOP_RESULT%"=="3" (
echo 27843 端口对应的进程不是此独立连接器,为避免误关,本次未执行停止。
pause
exit /b 1
)
echo Spine粒子连接器已停止。
exit /b 0