利用批處理實現一鍵搞定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版本提交 這樣一個命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章