windows批处理demo
下面是一个windows批处理编译流水线脚本,仅供参考语法(其中 // 表示后来加的注释,并非原文件中的注释)。
@rem Script to compile mdl sdk on Windows x64 platform
@echo off
echo "COMPILE_X64.BAT: MDL SDK build begin..."
set PATH=C:\Windows\system32;C:\Windows;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\;
set VS140COMNTOOLS=C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\
@rem set BUILD_CONFIG=Debug
set BUILD_CONFIG=Release // 设置变量
set PROJECT_PATH=%~dp0
set LIB_PATH=%MDL_DEP%\windows\vc143\lib
set GITBASH="C:\Program Files\Git\bin\bash.exe"
echo "COMPILE_X64.BAT: LIB_PATH=%LIB_PATH%"
echo "COMPILE_X64.BAT: BUILD_CONFIG=%BUILD_CONFIG%"
echo "COMPILE_X64.BAT: VS140COMNTOOLS=%VS140COMNTOOLS%"
echo "COMPILE_X64.BAT: PATH=%PATH%"
echo "COMPILE_X64.BAT: BASH=%GITBASH%"
@REM rmdir /s /q %SOLUTION_PATH%\x64\%BUILD_CONFIG%\ // @rem 行注释
echo "COMPILE_X64.BAT: Setup workspace..."
@rem may return err if setup wad done previously
%GITBASH% -e setup-sparse-checkout.sh --http
%GITBASH% -e prepare.sh -p
if not "%errorlevel%" == "0" goto ERROR // errorlevel表示上一个命令的退出值
echo "COMPILE_X64.BAT: Setup msbuild environment"
call "%VS140COMNTOOLS%..\..\VC\Auxiliary\Build\vcvarsall.bat" amd64
if not "%errorlevel%" == "0" goto ERROR
@rem python package needs it
copy "libs\win64\mdl_api.dll" X_LANG_SDK\python\pymdl
if not "%errorlevel%" == "0" (
echo "COMPILE_X64.BAT: copy mdl_api.dll to X_LANG_SDK\python\pymdl failed!!!"
goto ERROR
)
echo "COMPILE_X64.BAT: generate message classes..."
cd /d %PROJECT_PATH%X_LANG_SDK
py -3 code_gen.py -q
cd /d %PROJECT_PATH%X_LANG_SDK\python
rmdir /s /q dist // 删除文件夹
echo "COMPILE_X64.BAT: now build python sdk..."
call build.bat
if not "%errorlevel%" == "0" ( // if ... else ... 用法
echo "COMPILE_X64.BAT: build python sdk failed!!!"
goto ERROR
) else (
call dist.bat // 调用另一个bat
)
echo "COMPILE_X64.BAT: now build python2 sdk..."
call build.bat py2
if not "%errorlevel%" == "0" (
goto ERROR
echo "COMPILE_X64.BAT: build python2 sdk failed!!!"
) else (
call dist.bat py2
)
echo "COMPILE_X64.BAT: now build java sdk lib..."
@rem Not gen java api here, cause we won't package the jar ball on windows
@REM echo "COMPILE_X64.BAT: generate message classes for java..."
@REM cd /d %PROJECT_PATH%sdk
@REM py -3 code_gen.py -l java -q
cd /d %PROJECT_PATH%X_LANG_SDK\java
del /q /f javamdl\src\main\resources\*.dll
echo "COMPILE_X64.BAT: JAVA_HOME is %JAVA_HOME%"
call build.bat
if not "%errorlevel%" == "0" (
echo "COMPILE_X64.BAT: build java sdk lib failed!!!"
goto ERROR
)
echo "COMPILE_X64.BAT: MDL SDK build succeed, archive outputs..."
@REM tar -caf mdl_release.zip ^
@REM "%SOLUTION_PATH%\x64\%BUILD_CONFIG%\*.exe" ^
@REM "%SOLUTION_PATH%\x64\%BUILD_CONFIG%\mdl_api.lib" ^
@REM "%SOLUTION_PATH%\x64\%BUILD_CONFIG%\feeder_client.pdb" ^
@REM "%SOLUTION_PATH%\x64\%BUILD_CONFIG%\*.dll" ^
@REM "%LIB_PATH%\*.dll"
if not "%errorlevel%" == "0" goto ERROR
exit /b 0
:ERROR
echo "COMPILE_X64.BAT: MDL SDK build failed"
exit /b 1