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

📌 转载信息
转载时间:
2026/1/16 12:50:59

标签: 脚本, Windows, 自动化, GitHub API, CLIPROXY

添加新评论