fix: rebuild build_windows.bat without Chinese / dangerous cmd patterns
- Remove all non-ASCII text (cmd default GBK mangles UTF-8)
- Replace 'if errorlevel 1 (' multi-line blocks with 'goto :label'
- Replace 'echo(' with 'echo.'
- Use 'for %%I' to get file size (avoid UTF-8 console findstr issues)
- All error paths now end with explicit exit /b 1
Fixes #1: '涓嬭浇鍦板潃' (mojibake) and '('") parse errors.
This commit is contained in:
+88
-47
@@ -1,74 +1,115 @@
|
||||
@echo off
|
||||
REM ============================================
|
||||
REM SSHClient Windows 打包脚本
|
||||
REM 双击运行即可在当前目录生成 dist\SSHClient.exe
|
||||
REM SSHClient Windows build script
|
||||
REM Double-click to produce dist\SSHClient.exe
|
||||
REM ============================================
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
chcp 65001 >nul
|
||||
REM Force UTF-8 console so non-ASCII paths work
|
||||
chcp 65001 >nul 2>&1
|
||||
|
||||
setlocal
|
||||
|
||||
echo.
|
||||
echo ============================================
|
||||
echo SSHClient Windows 打包脚本
|
||||
echo SSHClient Windows Build Script
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
REM 1. 检查 Python
|
||||
REM 1. Check Python
|
||||
python --version >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo [X] 未检测到 Python,请先安装 Python 3.10+
|
||||
echo 下载地址: https://www.python.org/downloads/windows/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [OK] Python:
|
||||
if errorlevel 1 goto :no_python
|
||||
|
||||
echo [OK] Python found:
|
||||
python --version
|
||||
echo.
|
||||
|
||||
REM 2. 创建 venv(避免污染全局)
|
||||
if not exist "venv\" (
|
||||
echo.
|
||||
echo [1/4] 创建虚拟环境 venv\
|
||||
python -m venv venv
|
||||
if errorlevel 1 (
|
||||
echo [X] venv 创建失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
REM 2. Create venv if missing
|
||||
if not exist "venv\Scripts\python.exe" goto :create_venv
|
||||
goto :venv_ready
|
||||
|
||||
:create_venv
|
||||
echo [1/4] Creating virtual environment venv\ ...
|
||||
python -m venv venv
|
||||
if errorlevel 1 goto :venv_fail
|
||||
|
||||
:venv_ready
|
||||
call venv\Scripts\activate.bat
|
||||
|
||||
REM 3. 安装依赖
|
||||
if errorlevel 1 goto :activate_fail
|
||||
echo [OK] venv activated
|
||||
echo.
|
||||
echo [2/4] 安装依赖(首次约 1-2 分钟)
|
||||
|
||||
REM 3. Install dependencies
|
||||
echo [2/4] Installing dependencies (first run takes 1-2 minutes)...
|
||||
python -m pip install --upgrade pip --quiet
|
||||
if errorlevel 1 goto :pip_fail
|
||||
pip install -r requirements.txt --quiet
|
||||
if errorlevel 1 (
|
||||
echo [X] 依赖安装失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [OK] 依赖已就绪
|
||||
|
||||
REM 4. 打包
|
||||
if errorlevel 1 goto :pip_fail
|
||||
echo [OK] Dependencies ready
|
||||
echo.
|
||||
echo [3/4] 开始打包 PyInstaller...
|
||||
|
||||
REM 4. Build
|
||||
echo [3/4] Running PyInstaller...
|
||||
pyinstaller build.spec --clean --noconfirm
|
||||
if errorlevel 1 (
|
||||
echo [X] 打包失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
if errorlevel 1 goto :build_fail
|
||||
|
||||
REM 5. 完成
|
||||
REM 5. Done
|
||||
echo.
|
||||
echo [4/4] 打包完成!
|
||||
echo [4/4] Build complete.
|
||||
echo.
|
||||
echo ============================================
|
||||
echo 产物: dist\SSHClient.exe
|
||||
echo 大小:
|
||||
dir dist\SSHClient.exe | findstr "SSHClient.exe"
|
||||
echo Output: dist\SSHClient.exe
|
||||
if exist "dist\SSHClient.exe" (
|
||||
echo Size:
|
||||
for %%I in ("dist\SSHClient.exe") do echo %%~zI bytes
|
||||
) else (
|
||||
echo WARNING: SSHClient.exe not found in dist\
|
||||
)
|
||||
echo ============================================
|
||||
echo.
|
||||
echo 把 dist\SSHClient.exe 拷到任何 Windows 电脑双击即可运行。
|
||||
echo Copy dist\SSHClient.exe to any Windows PC and double-click to run.
|
||||
echo.
|
||||
goto :end
|
||||
|
||||
:no_python
|
||||
echo.
|
||||
echo [ERROR] Python not found in PATH.
|
||||
echo Please install Python 3.10+ from:
|
||||
echo https://www.python.org/downloads/windows/
|
||||
echo IMPORTANT: Check "Add Python to PATH" during install.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:venv_fail
|
||||
echo.
|
||||
echo [ERROR] Failed to create venv.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:activate_fail
|
||||
echo.
|
||||
echo [ERROR] Failed to activate venv.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:pip_fail
|
||||
echo.
|
||||
echo [ERROR] Failed to install dependencies.
|
||||
echo Check your network connection and try again.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:build_fail
|
||||
echo.
|
||||
echo [ERROR] PyInstaller build failed.
|
||||
echo Scroll up to see the error details.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:end
|
||||
pause
|
||||
endlocal
|
||||
|
||||
Reference in New Issue
Block a user