利用批处理实现一键搞定SVN更新、CMake生成工程文件、VS打开sln、开文件夹的偷懒目的

    以前每天到公司的都有一系列很繁琐的东西要做:开工程文件夹、SVN更新、用CMake更新工程文件、用VS开sln、编译。。。这些动作都是有先后顺序的,前者完成之后才能开始后者,这样就浪费的大量时间在等待上,如果能够一键搞定就好了。可以说是要偷懒,也可以说是要提高工作效率,自然就会去想办法让这一系列的动作自动化,由于是windows平台,就考虑用bat批处理来搞定。

    我的结构是:OneKeyDone.bat 为主要执行文件,里面分别调用Update.bat、Generate.bat、OpenVS.bat、OpenDir.bat四个批处理文件,每次只需要双击OneKeyDone.bat就可以完成所有动作。当然,我们也要保留其他功能的独立性,比如我编辑的工程,直接执行Generate.bat去更新工程就够了。下面是实现:

---------------------------------------------  OneKeyDone.bat  ------------------------------------------

rem "rem" 标示的一行为注释行,“echo off/on” 打开或关闭提示符,“color 2f”设置前景色和背景色,call 调用另一个批处理

@echo off

color 2f

call ./Update.bat

call ./Generate.bat

call ./OpenVS.bat

call OpenDir.bat

@echo on



---------------------------------------------  Update.bat  ------------------------------------------------

@echo off

color 2f

rem 设置各个路径变量

@set svn_bin=C:\Program Files\TortoiseSVN\bin

@set trunk_dir=E:\Code\trunk

@set bin_dir=E:\Code\trunk\bin


rem echo 后的内容会被打印到控制台上

@echo ========================== Update trunk =========================

rem 关于SVN更新命令行的参数请参阅有关文档,这里command:update表示让SVN更新,也可以Merge、checkout等

rem /path:"%trunk_dir%" 设置更新路径

rem 设置/closeonend:2表示更新没有问题(没冲突等)直接关闭更新对话框,否则等待用户处理

"%snv_bin%"\TortoiseProc.exe\command:update /path:"%trunk_dir%" /notempfile /closeonend:2


@echo ========================== Update bin ===========================

"%svn_bin%"\TortoiseProc.exe\command:update /path:"%bin_dir%" /notempfile /closeonend:2


@echo on



---------------------------------------------- Generate.bat -------------------------------------------------

@echo off

color 2f


@set trunk_dir=E:\Code\trunk

pushd %trunk_dir%

md %trunk_dir%\build

cd %trunk_dir%\build

rem cmake -G 的选项指定要生成的工程类型,可以是各个VS的版本,也可以是NMake等

rem -DBINARY_DIR=%trunk_dir% 定义了一个宏变量,这是CMakeList.txt文件编写时的一个设置,其他用户可不管

cmake -G "Visual Studio 11" %trunk_dir% -DBINARY_DIR=%trunk_dir%


@echo on



-----------------------------------------------  OpenVS.bat  ----------------------------------------------------

@echo off

color 2f


@set trunk_dir=E:\Code\trunk\build

@set vc_dir=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE

@set sln_name=E:\Code\trunk\build\All.sln


rem VS的路径有空格,需要用双引号包含,否则批处理会把空格处作为一句命令结束,%vs_dir%表示引用前面定义的变量值

"%vs_dir%"\devenv.exe "%sln_name%"


@echo on



-------------------------------------------------  OpenDir.bat -------------------------------------------

@echo off

color 2f


@set trunk_dir=E:\Code\trunk

@set bin_dir=E:\Code\trunk\bin


@start explorer "%trunk_dir%"

@start explorer "%bin_dir%"


@echo on

    好了,有了这些批处理,只要打开电脑后,直接双击OneKeyDone.bat就可以完成这些动作,这期间你可以放心的干点别的事。当然如果更新有冲突,则会等待你的处理。当然,如果有需要,还可以进行拓展,比如版本发布机就可以搞一个 SVN更新--VS编译--SVN版本提交 这样一个命令。

你可能感兴趣的:(SVN,批处理)