package.bat 2.74 KB
@echo off
REM 收银台sy项目打包脚本 (Windows版本)
REM 用途:将sy项目打包成zip文件,排除不必要的文件

chcp 65001 >nul
setlocal enabledelayedexpansion

echo 开始打包收银台sy项目...
echo.

REM 获取脚本所在目录
set "SCRIPT_DIR=%~dp0"
set "PROJECT_ROOT=%SCRIPT_DIR%.."
set "SY_DIR=%SCRIPT_DIR%"

REM 设置输出目录和文件名
set "OUTPUT_DIR=%PROJECT_ROOT%"
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set "TIMESTAMP=%datetime:~0,8%_%datetime:~8,6%"
set "ZIP_NAME=sy_cashier_%TIMESTAMP%.zip"
set "ZIP_PATH=%OUTPUT_DIR%\%ZIP_NAME%"

echo 项目目录: %SY_DIR%
echo 输出文件: %ZIP_PATH%
echo.

REM 检查是否有7-Zip或WinRAR
where 7z >nul 2>&1
if %errorlevel% equ 0 (
    set "ZIP_CMD=7z"
    set "ZIP_ARGS=a -tzip"
    goto :create_zip
)

where winrar >nul 2>&1
if %errorlevel% equ 0 (
    set "ZIP_CMD=winrar"
    set "ZIP_ARGS=a -afzip"
    goto :create_zip
)

REM 如果没有找到压缩工具,提示用户
echo 错误: 未找到压缩工具(7-Zip 或 WinRAR)
echo 请安装 7-Zip 或 WinRAR,或手动打包以下文件:
echo.
echo HTML文件:
dir /b *.html | findstr /v "copy bak"
echo.
echo 目录:
echo   css\
echo   js\
echo   images\
echo.
pause
exit /b 1

:create_zip
echo 复制文件...
echo.

REM 创建临时目录
set "TEMP_DIR=%TEMP%\sy_package_%RANDOM%"
mkdir "%TEMP_DIR%" 2>nul

REM 复制HTML文件(排除备份文件)
for %%f in (*.html) do (
    echo %%f | findstr /i "copy bak" >nul
    if errorlevel 1 (
        copy "%%f" "%TEMP_DIR%\" >nul
        echo   [OK] %%f
    )
)

REM 复制目录
if exist "css" (
    xcopy /E /I /Y "css" "%TEMP_DIR%\css\" >nul
    echo   [OK] css\
)
if exist "js" (
    xcopy /E /I /Y "js" "%TEMP_DIR%\js\" >nul
    echo   [OK] js\
)
if exist "images" (
    xcopy /E /I /Y "images" "%TEMP_DIR%\images\" >nul
    echo   [OK] images\
)

REM 复制文档文件
for %%f in (README.md QUICK_START.md API_CONFIG.md SETUP_CHECKLIST.md LAUNCH_QUICK_REFERENCE.txt start.bat start_3001.sh start_server.py) do (
    if exist "%%f" (
        copy "%%f" "%TEMP_DIR%\" >nul
        echo   [OK] %%f
    )
)

echo.
echo 创建压缩包...

REM 切换到临时目录并创建zip
cd /d "%TEMP_DIR%"
%ZIP_CMD% %ZIP_ARGS% "%ZIP_PATH%" * >nul

REM 清理临时目录
cd /d "%SCRIPT_DIR%"
rd /s /q "%TEMP_DIR%" 2>nul

REM 检查文件大小
for %%A in ("%ZIP_PATH%") do set "FILE_SIZE=%%~zA"
set /a FILE_SIZE_MB=%FILE_SIZE% / 1048576
set /a FILE_SIZE_KB=%FILE_SIZE% / 1024

echo.
echo ========================================
echo 打包完成!
echo ========================================
echo 文件路径: %ZIP_PATH%
echo 文件大小: %FILE_SIZE_KB% KB
echo.
echo 可以使用以下命令查看详细内容:
echo   %ZIP_CMD% l "%ZIP_PATH%"
echo.

pause