cliproxy 更新启动脚本 (Windows)
cliproxy 更新有点快,来个脚本启动前更新,或者安装
配置好 config.yaml 后命令行运行
@'
@echo off
setlocal enabledelayedexpansion
echo ============================================
echo CLIProxyAPI Auto Update Script
echo ============================================
echo.
set "REPO=router-for-me/CLIProxyAPI"
set "API_URL=https://api.github.com/repos/%REPO%/releases/latest"
set "DOWNLOAD_DIR=%~dp0"
set "TEMP_DIR=%DOWNLOAD_DIR%temp_update"
set "ZIP_FILE=%DOWNLOAD_DIR%CLIProxyAPI_latest.zip"
set "EXE_NAME=cli-proxy-api.exe"
set "VERSION_FILE=%DOWNLOAD_DIR%current_version.txt"
echo [1/4] Checking for updates...
REM Get latest version from GitHub
for /f "usebackq tokens=*" %%i in (`curl -s "%API_URL%" ^| powershell -Command "$input | ConvertFrom-Json | Select-Object -ExpandProperty tag_name"`) do set "LATEST_VERSION=%%i"
if "%LATEST_VERSION%"=="" (
echo [ERROR] Failed to get version info
echo [INFO] Starting existing program...
goto :start_program
)
echo [INFO] Latest version: %LATEST_VERSION%
REM Get current local version
set "CURRENT_VERSION="
if exist "%VERSION_FILE%" (
set /p CURRENT_VERSION=<"%VERSION_FILE%"
)
if "%CURRENT_VERSION%"=="" (
echo [INFO] No local version found
) else (
echo [INFO] Current version: %CURRENT_VERSION%
)
REM Compare versions
if "%CURRENT_VERSION%"=="%LATEST_VERSION%" (
echo.
echo [INFO] Already up to date!
goto :start_program
)
echo.
echo [2/4] New version available! Downloading...
set "VERSION_NUM=%LATEST_VERSION:~1%"
set "DOWNLOAD_URL=https://github.com/%REPO%/releases/download/%LATEST_VERSION%/CLIProxyAPI_%VERSION_NUM%_windows_amd64.zip"
echo URL: %DOWNLOAD_URL%
curl -L -o "%ZIP_FILE%" "%DOWNLOAD_URL%" --progress-bar
if not exist "%ZIP_FILE%" (
echo [ERROR] Download failed
goto :start_program
)
echo.
echo [3/4] Extracting and updating %EXE_NAME%...
if exist "%TEMP_DIR%" rd /s /q "%TEMP_DIR%"
mkdir "%TEMP_DIR%"
powershell -Command "Expand-Archive -Path '%ZIP_FILE%' -DestinationPath '%TEMP_DIR%' -Force"
REM Stop running process
tasklist /FI "IMAGENAME eq %EXE_NAME%" 2>nul | find /I "%EXE_NAME%" >nul
if !errorlevel! equ 0 (
echo [INFO] Stopping running process...
taskkill /F /IM "%EXE_NAME%" >nul 2>&1
timeout /t 2 /nobreak >nul
)
if exist "%TEMP_DIR%\%EXE_NAME%" (
copy /y "%TEMP_DIR%\%EXE_NAME%" "%DOWNLOAD_DIR%\%EXE_NAME%" >nul
echo %LATEST_VERSION%>"%VERSION_FILE%"
echo [INFO] Updated to %LATEST_VERSION%
) else (
echo [ERROR] %EXE_NAME% not found in archive
)
echo.
echo [4/4] Cleaning up...
del /f /q "%ZIP_FILE%" 2>nul
rd /s /q "%TEMP_DIR%" 2>nul
:start_program
echo.
if not exist "%DOWNLOAD_DIR%%EXE_NAME%" (
echo [ERROR] %EXE_NAME% not found
pause
exit /b 1
)
echo ============================================
echo Starting %EXE_NAME%
echo ============================================
echo.
cd /d "%DOWNLOAD_DIR%"
"%EXE_NAME%"
'@ | Out-File -FilePath "cliproxy.bat" -Encoding ASCII
再运行
.\cliproxy.bat
