Skip to content

Commit 2dcb431

Browse files
committed
追踪 .bat 文件并更新 .gitignore
1 parent 5615558 commit 2dcb431

3 files changed

Lines changed: 326 additions & 1 deletion

File tree

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ result/
2424

2525

2626
# Batch files and executables
27-
*.bat
2827
*.exe
2928
*.sh
3029

步骤3-检查更新并启动.bat

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
@echo off
2+
chcp 936 >nul
3+
setlocal EnableDelayedExpansion
4+
5+
REM 检测虚拟环境有效性
6+
set VENV_VALID=0
7+
if exist "venv\Scripts\python.exe" (
8+
venv\Scripts\python.exe -c "import sys; sys.exit(0)" >nul 2>&1
9+
if !ERRORLEVEL! == 0 (
10+
set VENV_VALID=1
11+
)
12+
)
13+
14+
if !VENV_VALID! == 0 (
15+
echo [ERROR] 虚拟环境不存在或已损坏
16+
echo 请先运行 步骤1-首次安装.bat 创建虚拟环境
17+
pause
18+
exit /b 1
19+
)
20+
21+
REM 激活虚拟环境
22+
call venv\Scripts\activate.bat
23+
24+
REM 检查是否有便携版 Git
25+
if exist "PortableGit\cmd\git.exe" (
26+
set "GIT=%CD%\PortableGit\cmd\git.exe"
27+
set "PATH=%CD%\PortableGit\cmd;%PATH%"
28+
) else (
29+
git --version >nul 2>&1
30+
if %ERRORLEVEL% == 0 (
31+
set GIT=git
32+
) else (
33+
REM Git不可用,跳过版本检查
34+
goto :skip_version_check
35+
)
36+
)
37+
38+
REM 快速检查版本(不停顿)
39+
if exist "packaging\VERSION" (
40+
set /p CURRENT_VERSION=<packaging\VERSION
41+
) else (
42+
set CURRENT_VERSION=unknown
43+
)
44+
45+
REM 静默检查远程版本
46+
%GIT% fetch origin >nul 2>&1
47+
%GIT% show origin/main:packaging/VERSION > tmp_version.txt 2>nul
48+
if exist "tmp_version.txt" (
49+
set /p REMOTE_VERSION=<tmp_version.txt
50+
del tmp_version.txt
51+
) else (
52+
set REMOTE_VERSION=unknown
53+
)
54+
55+
REM 显示版本信息(不停顿)
56+
echo.
57+
echo ========================================
58+
echo 漫画翻译器 - 启动中
59+
echo ========================================
60+
echo 当前版本: !CURRENT_VERSION!
61+
62+
if not "!REMOTE_VERSION!"=="unknown" (
63+
if not "!CURRENT_VERSION!"=="!REMOTE_VERSION!" (
64+
echo 远程版本: !REMOTE_VERSION!
65+
echo.
66+
echo [提示] 发现新版本可用!
67+
echo 请运行 步骤4-更新维护.bat 进行更新
68+
echo.
69+
)
70+
)
71+
72+
:skip_version_check
73+
REM 切换到项目根目录
74+
cd /d "%~dp0"
75+
76+
REM 启动 Qt 界面
77+
echo 正在启动...
78+
echo ========================================
79+
echo.
80+
python "%CD%\desktop_qt_ui\main.py"
81+
pause

步骤4-更新维护.bat

Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
@echo off
2+
chcp 936 >nul
3+
setlocal EnableDelayedExpansion
4+
5+
echo.
6+
echo ========================================
7+
echo 漫画翻译器 - 更新维护工具
8+
echo Manga Translator UI - Update Tool
9+
echo ========================================
10+
echo.
11+
12+
REM 检测虚拟环境有效性
13+
set VENV_VALID=0
14+
if exist "venv\Scripts\python.exe" (
15+
venv\Scripts\python.exe -c "import sys; sys.exit(0)" >nul 2>&1
16+
if !ERRORLEVEL! == 0 (
17+
set VENV_VALID=1
18+
)
19+
)
20+
21+
if !VENV_VALID! == 0 (
22+
echo [ERROR] 虚拟环境不存在或已损坏
23+
echo 请先运行 步骤1-首次安装.bat 创建虚拟环境
24+
pause
25+
exit /b 1
26+
)
27+
28+
REM 激活虚拟环境
29+
call venv\Scripts\activate.bat
30+
31+
REM 检查是否有便携版 Git
32+
if exist "PortableGit\cmd\git.exe" (
33+
set "GIT=%CD%\PortableGit\cmd\git.exe"
34+
set "PATH=%CD%\PortableGit\cmd;%PATH%"
35+
) else (
36+
git --version >nul 2>&1
37+
if %ERRORLEVEL% == 0 (
38+
set GIT=git
39+
) else (
40+
echo [ERROR] 未找到 Git
41+
echo 请先安装 Git 或运行 步骤1-首次安装.bat
42+
pause
43+
exit /b 1
44+
)
45+
)
46+
47+
REM 检查版本信息 (在菜单显示前)
48+
:check_version
49+
echo.
50+
echo 正在检查版本...
51+
echo ========================================
52+
53+
REM 获取当前版本
54+
if exist "packaging\VERSION" (
55+
set /p CURRENT_VERSION=<packaging\VERSION
56+
echo 当前版本: !CURRENT_VERSION!
57+
) else (
58+
echo 当前版本: 未知
59+
set CURRENT_VERSION=unknown
60+
)
61+
62+
echo.
63+
echo 正在检查远程版本...
64+
%GIT% fetch origin >nul 2>&1
65+
66+
REM 获取远程版本
67+
%GIT% show origin/main:packaging/VERSION > tmp_version.txt 2>nul
68+
if exist "tmp_version.txt" (
69+
set /p REMOTE_VERSION=<tmp_version.txt
70+
del tmp_version.txt
71+
echo 远程版本: !REMOTE_VERSION!
72+
) else (
73+
echo 远程版本: 无法获取
74+
set REMOTE_VERSION=unknown
75+
)
76+
77+
echo.
78+
REM 检查是否有更新
79+
if "!CURRENT_VERSION!"=="!REMOTE_VERSION!" (
80+
echo [信息] 当前已是最新版本
81+
) else (
82+
if "!REMOTE_VERSION!"=="unknown" (
83+
echo [警告] 无法获取远程版本信息,可能网络问题
84+
) else (
85+
echo [发现新版本]
86+
echo.
87+
echo 最新更新内容 (最近10条):
88+
echo ----------------------------------------
89+
%GIT% log HEAD..origin/main --oneline --decorate --no-color -10 2>nul
90+
echo ----------------------------------------
91+
)
92+
)
93+
94+
echo.
95+
echo ========================================
96+
97+
REM 菜单
98+
:menu
99+
echo.
100+
echo 请选择操作:
101+
echo [1] 更新代码 (强制同步)
102+
echo [2] 更新/安装依赖
103+
echo [3] 完整更新 (代码+依赖)
104+
echo [4] 重新检查版本
105+
echo [5] 退出
106+
echo.
107+
set /p choice="请选择 (1/2/3/4/5): "
108+
109+
if "%choice%"=="1" goto update_code
110+
if "%choice%"=="2" goto update_deps
111+
if "%choice%"=="3" goto full_update
112+
if "%choice%"=="4" (
113+
REM 重新检查版本,需要跳转到脚本开始的版本检查部分
114+
cls
115+
echo.
116+
echo ========================================
117+
echo 漫画翻译器 - 更新维护工具
118+
echo Manga Translator UI - Update Tool
119+
echo ========================================
120+
goto check_version
121+
)
122+
if "%choice%"=="5" goto end
123+
124+
echo 无效选项
125+
goto menu
126+
127+
:update_code
128+
echo.
129+
echo ========================================
130+
echo 更新代码 (强制同步)
131+
echo ========================================
132+
echo.
133+
134+
if not defined CURRENT_VERSION (
135+
if exist "packaging\VERSION" (
136+
set /p CURRENT_VERSION=<packaging\VERSION
137+
) else (
138+
set CURRENT_VERSION=unknown
139+
)
140+
)
141+
142+
if not defined REMOTE_VERSION (
143+
set REMOTE_VERSION=unknown
144+
)
145+
146+
echo 当前版本: !CURRENT_VERSION!
147+
echo 远程版本: !REMOTE_VERSION!
148+
echo.
149+
150+
if "!CURRENT_VERSION!"=="!REMOTE_VERSION!" (
151+
echo [信息] 当前已是最新版本
152+
echo.
153+
set /p still_update="是否仍要强制更新? (y/n): "
154+
if /i not "!still_update!"=="y" (
155+
goto menu
156+
)
157+
)
158+
159+
echo [警告] 将强制同步到远程分支,本地修改将被覆盖
160+
set /p confirm="是否继续更新? (y/n): "
161+
if /i not "!confirm!"=="y" (
162+
echo 取消更新
163+
goto menu
164+
)
165+
166+
echo.
167+
echo 正在强制同步到远程分支...
168+
%GIT% reset --hard origin/main
169+
170+
if %ERRORLEVEL% == 0 (
171+
echo [OK] 代码更新完成
172+
if exist "packaging\VERSION" (
173+
set /p NEW_VERSION=<packaging\VERSION
174+
echo 更新后版本: !NEW_VERSION!
175+
)
176+
) else (
177+
echo [ERROR] 代码更新失败
178+
)
179+
pause
180+
goto menu
181+
182+
:update_deps
183+
echo.
184+
echo ========================================
185+
echo 更新/安装依赖
186+
echo ========================================
187+
echo.
188+
189+
python launch.py --install-deps-only
190+
191+
if %ERRORLEVEL% == 0 (
192+
echo [OK] 依赖更新完成
193+
) else (
194+
echo [ERROR] 依赖更新失败
195+
)
196+
pause
197+
goto menu
198+
199+
:full_update
200+
echo.
201+
echo ========================================
202+
echo 完整更新 (代码+依赖)
203+
echo ========================================
204+
echo.
205+
206+
echo [1/2] 更新代码 (强制同步)...
207+
echo [警告] 将强制同步到远程分支,本地修改将被覆盖
208+
set /p confirm="是否继续? (y/n): "
209+
if /i not "!confirm!"=="y" (
210+
echo 取消更新
211+
goto menu
212+
)
213+
214+
echo.
215+
echo 获取远程更新...
216+
%GIT% fetch origin
217+
218+
echo.
219+
echo 正在强制同步到远程分支...
220+
%GIT% reset --hard origin/main
221+
222+
if %ERRORLEVEL% neq 0 (
223+
echo [ERROR] 代码更新失败
224+
pause
225+
goto menu
226+
)
227+
echo [OK] 代码更新完成
228+
229+
echo.
230+
echo [2/2] 更新依赖...
231+
python launch.py --install-deps-only
232+
233+
if %ERRORLEVEL% == 0 (
234+
echo.
235+
echo [OK] 完整更新完成
236+
) else (
237+
echo [ERROR] 依赖更新失败
238+
)
239+
pause
240+
goto menu
241+
242+
:end
243+
echo.
244+
echo 退出更新工具
245+
pause

0 commit comments

Comments
 (0)