您的位置:首页 > 其它

批量自动更新SVN版本库 - Windows

2017-04-28 16:17 281 查看
在Windows环境使用bat批处理来实现自动处理从SVN代码库里update各个项目代码。

@echo off
@echo ******************************************************
@echo =============== 批量自动更新SVN版本库 ===============
@echo %date% %time%   准备更新SVN版本库
@echo ******************************************************

::代码编写思路
::获取bat当前的运行目录 %dp0
::遍历当前目录,查找包含.svn子文件夹的文件夹
::生成命令并调用执行

::部分参数说明
::svn_home 安装TortoiseSVN的目录
::work_dir 需要更新的SVN目录路径,路径之间用空格隔开
::/closeonend:0 不自动关闭窗口
::/closeonend:1 在没有错误的情况下关闭窗口
::/closeonend:2 在没有错误和冲突的情况下关闭窗口
::/closeonend:3 在没有错误、冲突、合并情况下关闭窗口
::dir /ad-s/b 表示只取目录,并且不是系统文件夹,使用空格模式显示

:: 设置本地为延迟扩展。其实也就是:延迟变量,全称延迟环境变量扩展。
setlocal enabledelayedexpansion

:: 设置svn默认安装位置以及需要调用的应用程序
set svn_home=D:\Program Files\TortoiseSVN\bin
set exe_name=TortoiseProc.exe
set work_dir=D:\project\svn

:: 进入包含多个svn项目的目录
D:
cd %work_dir%

@echo =============== 数据处理中 ===============

:: 使用for循环从 dir 获取到字符串中获取文件夹名字
for /f "delims=" %%i in ('"dir /ad-s/b "') do (
:: 判断是否是svn文件夹
if exist "%~dp0%%i\.svn\" (
@echo 正在更新项目 %%i
:: 调用更新命令
"%svn_home%\%exe_name%" /command:update /path:%%i /notempfile /closeonend:2
) else (
@echo %%i 不存在svn信息
)
)

@echo =============== 更新完成 ===============

@pause


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: