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
|
@echo off
|
||||||
REM ============================================
|
REM ============================================
|
||||||
REM SSHClient Windows 打包脚本
|
REM SSHClient Windows build script
|
||||||
REM 双击运行即可在当前目录生成 dist\SSHClient.exe
|
REM Double-click to produce dist\SSHClient.exe
|
||||||
REM ============================================
|
REM ============================================
|
||||||
|
|
||||||
setlocal enabledelayedexpansion
|
REM Force UTF-8 console so non-ASCII paths work
|
||||||
chcp 65001 >nul
|
chcp 65001 >nul 2>&1
|
||||||
|
|
||||||
|
setlocal
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ============================================
|
echo ============================================
|
||||||
echo SSHClient Windows 打包脚本
|
echo SSHClient Windows Build Script
|
||||||
echo ============================================
|
echo ============================================
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
REM 1. 检查 Python
|
REM 1. Check Python
|
||||||
python --version >nul 2>&1
|
python --version >nul 2>&1
|
||||||
if errorlevel 1 (
|
if errorlevel 1 goto :no_python
|
||||||
echo [X] 未检测到 Python,请先安装 Python 3.10+
|
|
||||||
echo 下载地址: https://www.python.org/downloads/windows/
|
echo [OK] Python found:
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
echo [OK] Python:
|
|
||||||
python --version
|
python --version
|
||||||
|
echo.
|
||||||
|
|
||||||
REM 2. 创建 venv(避免污染全局)
|
REM 2. Create venv if missing
|
||||||
if not exist "venv\" (
|
if not exist "venv\Scripts\python.exe" goto :create_venv
|
||||||
echo.
|
goto :venv_ready
|
||||||
echo [1/4] 创建虚拟环境 venv\
|
|
||||||
python -m venv venv
|
:create_venv
|
||||||
if errorlevel 1 (
|
echo [1/4] Creating virtual environment venv\ ...
|
||||||
echo [X] venv 创建失败
|
python -m venv venv
|
||||||
pause
|
if errorlevel 1 goto :venv_fail
|
||||||
exit /b 1
|
|
||||||
)
|
:venv_ready
|
||||||
)
|
|
||||||
call venv\Scripts\activate.bat
|
call venv\Scripts\activate.bat
|
||||||
|
if errorlevel 1 goto :activate_fail
|
||||||
REM 3. 安装依赖
|
echo [OK] venv activated
|
||||||
echo.
|
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
|
python -m pip install --upgrade pip --quiet
|
||||||
|
if errorlevel 1 goto :pip_fail
|
||||||
pip install -r requirements.txt --quiet
|
pip install -r requirements.txt --quiet
|
||||||
if errorlevel 1 (
|
if errorlevel 1 goto :pip_fail
|
||||||
echo [X] 依赖安装失败
|
echo [OK] Dependencies ready
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
echo [OK] 依赖已就绪
|
|
||||||
|
|
||||||
REM 4. 打包
|
|
||||||
echo.
|
echo.
|
||||||
echo [3/4] 开始打包 PyInstaller...
|
|
||||||
|
REM 4. Build
|
||||||
|
echo [3/4] Running PyInstaller...
|
||||||
pyinstaller build.spec --clean --noconfirm
|
pyinstaller build.spec --clean --noconfirm
|
||||||
if errorlevel 1 (
|
if errorlevel 1 goto :build_fail
|
||||||
echo [X] 打包失败
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
REM 5. 完成
|
REM 5. Done
|
||||||
echo.
|
echo.
|
||||||
echo [4/4] 打包完成!
|
echo [4/4] Build complete.
|
||||||
echo.
|
echo.
|
||||||
echo ============================================
|
echo ============================================
|
||||||
echo 产物: dist\SSHClient.exe
|
echo Output: dist\SSHClient.exe
|
||||||
echo 大小:
|
if exist "dist\SSHClient.exe" (
|
||||||
dir dist\SSHClient.exe | findstr "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.
|
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.
|
echo.
|
||||||
pause
|
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