脚本内容如下:
VS2010大型解决方案自动取TFS最新代码或取指定文件最新代码,并自动编译打包为RAR文件。
注:这里有VS的SETUP部署方案,也自动编译了,最后所有文件及LOG全部在D盘目录
大家自己略加修改可以支持更多的功能
我们的目标,让代码减轻工作
@echo off
echo ****************************************
echo 自动编译并打包
echo By Cryking
echo 2013.08.01
echo ****************************************
title AutoComplie Created By Cryking
color 0a
rem hh用来解决取小时可能出现空格的问题(凌晨1点到早上9点%time:~0,2%都会出现空格)
set h=%time:~0,2%
set hh=%h: =0%
set log_file="D:\Complie_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%hh%%time:~3,2%.log"
set rar_file="Cry_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%hh%%time:~3,2%.rar"
set tfs_log="D:\tfs_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%hh%%time:~3,2%.log"
set CRY_path=D:\code\ConsoleApplication1\ConsoleApplication1\bin
cd /d D:\"Program Files"\VS2010\Common7\IDE
echo.
echo TFS文件获取菜单
echo.
echo 请选择TFS获取文件方式:
echo 0.获取全部的TFS最新代码
echo 1.获取指定文件的TFS最新代码(单个文件)
echo ---
set /p tfsLevel="请选择(0|1):"
if %tfsLevel%==0 (tf get /version:T /all >%tfs_log%)
if %tfsLevel%==1 (echo "输入要获取的文件名(如tfs有多个子工程,需包含路径,有空格的文件名需用双引号引起来)"
set /p tfsfile=": "
tf get $/cry_01/cry/%tfsfile% >%tfs_log%)
if not %tfsLevel%==1 (if not %tfsLevel%==0 exit)
echo.
echo 自动打包为RAR文件及SETUP安装文件
echo.
echo 请选择打包方式:
echo 0.全部打包(压缩全部文件)
echo 1.部分打包(仅压缩必须的DLL及EXE文件)
echo ---
set /p rarLevel="部分打包还是全部打包?[1|0]:"
devenv /build Debug "D:\code\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.sln" /Out %log_file%
cd %CRY_path%
del %CRY_path%\debug\*.pdb
if %rarLevel%==1 (D:\"Program Files"\WinRAR420\WinRAR.exe a -r %rar_file% @D:\rarfile) else (D:\"Program Files"\WinRAR420\WinRAR.exe a -r %rar_file% debug\*)
copy *.rar D:\
del %CRY_path%\*.rar
echo.
echo ***生成SETUP安装包***
echo devenv /build Release "D:\User\comp\CrySetup\CrySetup.sln" /Out %log_file%
echo copy D:\code\CrySetup\CrySetup\Release\*.* d:\
echo rename d:\CrySetup.msi d:\CrySetup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%hh%%time:~3,2%.msi
echo rename d:\setup.exe d:\setup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%hh%%time:~3,2%.exe
echo.
echo ***************************************
echo 自动编译完成!
echo.&pause
注意:要生成SETUP安装包,必须在VS里建立对应的部署解决方案。
其中rarfile文件内容是指定需要RAR打包的文件列表。详细的RAR命令见相关文档.