169 lines
4.5 KiB
Batchfile
169 lines
4.5 KiB
Batchfile
@echo off
|
||
rem 使用更可靠的方式设置UTF-8编码
|
||
chcp 65001 > nul
|
||
setlocal enabledelayedexpansion
|
||
|
||
title Cursor Pro Register 打包工具
|
||
|
||
cls
|
||
echo ================================================
|
||
echo Cursor Pro Register 打包工具
|
||
echo ================================================
|
||
echo.
|
||
|
||
rem 检测Python是否已安装
|
||
python --version > nul 2>&1
|
||
if %errorlevel% neq 0 (
|
||
echo [错误] 未检测到Python安装,请先安装Python 3.8或更高版本
|
||
echo 您可以从 https://www.python.org/downloads/ 下载安装
|
||
pause
|
||
exit /b 1
|
||
)
|
||
|
||
echo [信息] 检测到Python已安装
|
||
echo.
|
||
|
||
rem 获取当前日期和时间
|
||
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
|
||
set "YEAR=%dt:~0,4%"
|
||
set "MONTH=%dt:~4,2%"
|
||
set "DAY=%dt:~6,2%"
|
||
set "TODAY=%YEAR%%MONTH%%DAY%"
|
||
|
||
rem 默认设置
|
||
set "DEFAULT_VERSION=0.1"
|
||
set "DEFAULT_NAME=cursor注册机"
|
||
set "APP_VERSION=%DEFAULT_VERSION%"
|
||
set "APP_NAME=%DEFAULT_NAME%"
|
||
set "KEEP_PREVIOUS=1"
|
||
|
||
:Menu
|
||
cls
|
||
echo ================================================
|
||
echo Cursor Pro Register 打包工具
|
||
echo ================================================
|
||
echo.
|
||
echo [信息] 检测到Python已安装
|
||
echo.
|
||
rem 显示菜单
|
||
echo 请选择打包操作:
|
||
echo [1] 快速打包(使用默认设置)
|
||
echo [2] 自定义打包设置
|
||
echo [3] 高级打包模式(使用spec文件)
|
||
echo [4] 退出
|
||
echo.
|
||
|
||
set /p USER_CHOICE="请选择 [1-4]: "
|
||
|
||
rem 处理选择
|
||
if "%USER_CHOICE%"=="1" (
|
||
echo.
|
||
echo [信息] 正在使用默认设置进行打包
|
||
goto StartPackaging
|
||
) else if "%USER_CHOICE%"=="2" (
|
||
echo.
|
||
echo [信息] 请输入自定义设置
|
||
|
||
set /p APP_NAME="应用名称 [默认: %DEFAULT_NAME%]: "
|
||
if "!APP_NAME!"=="" set "APP_NAME=%DEFAULT_NAME%"
|
||
|
||
set /p APP_VERSION="版本号 [默认: %DEFAULT_VERSION%]: "
|
||
if "!APP_VERSION!"=="" set "APP_VERSION=%DEFAULT_VERSION%"
|
||
|
||
echo.
|
||
echo 是否保留之前的打包版本?
|
||
set /p KEEP_CHOICE="是否保留 [Y=是, N=否, 默认=Y]: "
|
||
|
||
if /i "!KEEP_CHOICE!"=="N" (
|
||
set "KEEP_PREVIOUS=0"
|
||
) else (
|
||
set "KEEP_PREVIOUS=1"
|
||
)
|
||
|
||
goto StartPackaging
|
||
) else if "%USER_CHOICE%"=="3" (
|
||
echo.
|
||
echo [信息] 正在启动高级打包模式
|
||
|
||
set /p APP_NAME="应用名称 [默认: %DEFAULT_NAME%]: "
|
||
if "!APP_NAME!"=="" set "APP_NAME=%DEFAULT_NAME%"
|
||
|
||
set /p APP_VERSION="版本号 [默认: %DEFAULT_VERSION%]: "
|
||
if "!APP_VERSION!"=="" set "APP_VERSION=%DEFAULT_VERSION%"
|
||
|
||
echo.
|
||
echo 是否保留之前的打包版本?
|
||
set /p KEEP_CHOICE="是否保留 [Y=是, N=否, 默认=Y]: "
|
||
|
||
if /i "!KEEP_CHOICE!"=="N" (
|
||
set "KEEP_PREVIOUS=0"
|
||
) else (
|
||
set "KEEP_PREVIOUS=1"
|
||
)
|
||
|
||
echo.
|
||
echo [信息] 正在使用高级打包模式...
|
||
|
||
rem 检查Python脚本是否存在
|
||
if not exist package_spec.py (
|
||
echo [错误] 找不到package_spec.py文件,无法进行高级打包
|
||
echo 按任意键返回主菜单...
|
||
pause > nul
|
||
goto Menu
|
||
)
|
||
|
||
python package_spec.py "!APP_NAME!v!APP_VERSION!" !KEEP_PREVIOUS!
|
||
if %errorlevel% neq 0 (
|
||
echo [错误] Python脚本执行失败,请检查上面的错误信息
|
||
)
|
||
goto End
|
||
) else if "%USER_CHOICE%"=="4" (
|
||
echo.
|
||
echo [信息] 已取消打包操作
|
||
goto End
|
||
) else (
|
||
echo.
|
||
echo [错误] 无效的选择,请重新输入...
|
||
timeout /t 2 > nul
|
||
goto Menu
|
||
)
|
||
|
||
:StartPackaging
|
||
rem 构建最终的应用名称
|
||
set "FINAL_NAME=!APP_NAME!v!APP_VERSION!"
|
||
echo.
|
||
echo [信息] 使用以下设置进行打包:
|
||
echo 应用名称: !FINAL_NAME!
|
||
echo 保留旧版本: !KEEP_PREVIOUS!
|
||
echo.
|
||
|
||
rem 检查Python脚本是否存在
|
||
if not exist package.py (
|
||
echo [错误] 找不到package.py文件,无法进行打包
|
||
echo 按任意键返回主菜单...
|
||
pause > nul
|
||
goto Menu
|
||
)
|
||
|
||
rem 开始打包
|
||
echo [信息] 开始打包过程...
|
||
|
||
rem 直接调用Python执行打包,避免混合输出到控制台的方式
|
||
python package.py "!FINAL_NAME!" !KEEP_PREVIOUS!
|
||
if %errorlevel% neq 0 (
|
||
echo [错误] Python脚本执行失败,请检查上面的错误信息
|
||
)
|
||
|
||
:End
|
||
echo.
|
||
echo ================================================
|
||
echo 打包过程已结束
|
||
echo ================================================
|
||
echo.
|
||
echo 是否返回主菜单? [Y=是, N=退出]
|
||
set /p MENU_CHOICE="选择 [Y/N]: "
|
||
if /i "!MENU_CHOICE!"=="Y" goto Menu
|
||
|
||
echo 感谢使用Cursor Pro Register打包工具,再见!
|
||
timeout /t 3 > nul
|
||
endlocal |