任務計划程序
任務計划程序是Window自帶的組件
微軟文檔
打開方法
方法一:開始菜單\ 控制面板 \管理工具 \任務計划程序
方法二:開始菜單\ 所有程序 \ 附件 \ 系統工具 \ 任務計划程序
在這兒可以創建任務,讓它按我們的計划去做我們想做的事。
自動更新SVN
TortoiseSVN文檔:https://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html
使用TortoiseSVN的TortoiseProc.exe進行更新SVN,
參考資料:http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/tsvn-automation.html
tortoisesvn提供的api
XXXX\TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0
實現代碼
更新svn.bat
1、創建一個bat文件,命名為:更新SVN.bat 。內容如下:
@echo off @echo ================自動更新SVN Start=============== rem SVN安裝目錄 SET svn_home=D:\Program Files\TortoiseSVN\bin rem SVN項目目錄 SET svn_work=D:\Code\Unity3D\SVN\cosmosbox\cosmosbox rem SVN日志目錄 remSET setup_path=D:\ @echo 正在更新目錄 %svn_work% Echo 正在殺死進程... rem excel和word如果打開狀態,會導致不能正常更新,所以要把進程結束,我機器安裝的是WPS taskkill /f /im et.exe taskkill /f /im wps.exe Echo 殺死進程完畢 rem 檢查日志文件 rem if exist "%setup_path%"\autoUpdate.log (echo update: %date% %time% >> "%setup_path%"\autoUpdate.log) else echo create: %date% %time% >"%setup_path%"\autoUpdate.log rem 執行SVN更新命令,更新對話框不自動關閉 "%svn_home%"\TortoiseProc.exe/command:update /path:"%svn_work%" /notempfile /closeonend:0 echo ==============自動更新SVN Finish============== pause
創建計划任務.bat
2、再創建一個bat文件,命名為:創建計划任務.bat。內容如下
@echo 添加計划任務 rem 把"更新SVN.bat"和此bat放在同一目錄,雙擊即可創建計划任務,每天7:00自動執行此bat SCHTASKS /Create /SC DAILY /ST 07:00:00 /TN "自動更新SVN" /TR "%~sdp0更新SVN.bat" /F pause
運行方法
3、把1,2中創建的bat放在同一目錄下,修改成自己的SVN和TortoiseSVN的安裝目錄。
雙擊 創建計划任務.bat ,在任務計划程序中查看任務是否創建成功
可能遇到的問題
4、雙擊 更新SVN.bat 查看是否能正常更新SVN,如果出現 Two top-level reports with no target 或 SVN跳過 錯誤不能更新SVN。
請檢查bat文件中空格是否正確,把bat放置在SVN目錄外,再重試。
同時更新多個SVN庫
如果有多個SVN庫,需要同時更新的話,
方法一:同時打開多個svn窗口進行更新
批處理腳本
@echo off Echo 正在殺死進程... rem 把WPS相關的進程 Kill避免更新過程中lock taskkill /f /im et.exe taskkill /f /im wps.exe taskkill /F /IM "TortoiseProc.exe" Echo 殺死進程完畢 rem cosmosbox ,strikehero_art,cosmosbox , trunk 是四個不同的svn庫 start TortoiseProc.exe /command:update /path:cosmosbox start TortoiseProc.exe /command:update /path:strikehero_art start TortoiseProc.exe /command:update /path:cosmosbox-op start TortoiseProc.exe /command:update /path:trunk rem參考 http://chevy.iteye.com/blog/1271797 rem http://www.cnblogs.com/luomingui/archive/2012/09/09/2678045.html
方法二:在同一個SVN窗口更新多個不同的SVN庫
批處理腳本
@echo off @echo ================自動更新SVN Start=============== rem SVN安裝目錄 SET svn_home=C:\Program Files\TortoiseSVN\bin rem SVN項目目錄 SET svn_work_code=X:\xxgame\xx_code_vn SET svn_work_gameres=X:\xxgame\xx_scheme_vn SET svn_work_product=X:\xxgame\xx_product_vn @echo 正在更新目錄 %svn_work_code%,%svn_work_gameres%,%svn_work_product% rem excel和word如果打開狀態,會導致不能正常更新,所以要把進程結束(區分wps或office進程) rem taskkill /f /im et.exe rem taskkill /f /im wps.exe rem Echo 殺死進程完畢 rem 執行SVN更新命令,更新對話框不自動關閉 "%svn_home%"\TortoiseProc.exe/command:update /path:"%svn_work_code%*%svn_work_gameres%*%svn_work_product%" /notempfile /closeonend:0 echo ==============自動更新SVN Finish==============