自动将f:\svn下的所有的版本库备份到f:\bak目录下,并用bzip2自动压缩。
可以通过计划任务定期调用。
为了支持压缩需要在svn_bin下方置 bzip2.exe,cygwin1.dll。
1、backup.bat
@echo off
rem 设置svn可执行文件所在的目录
set svn_bin=f:\svn-win32-1.4.0\bin
rem 设置svn代码库所在的驱动器盘符
set svn_drv=f:
rem 设置svn代码库所在的目录
set svn_dir=svn
rem 设置备份文件存贮的路径
set svn_bak=f:\bak
rem 如果备份目录不存在,则创建之
if not exist %svn_bak% md %svn_bak%
rem svn代码库根目录的完整路径
set svn_db=%svn_drv%\%svn_dir%
%svn_drv%
cd \
cd %svn_dir%
echo 开始备份svn代码库…
for /f %%d in (dir /ad /b) do call %svn_db%\work.bat %%d
echo 备份svn代码库完毕…
%svn_drv%
cd \
@echo on
2、work.bat
set svn_src=%1
for /f “tokens=1,2,3 delims=- ” %%1 in (date /t) do set date=%%1-%%2-%%3
for /f “tokens=1,2 delims=:” %%1 in (time /t) do set time=%%1-%%2
if not exist %svn_bak%\%date% md %svn_bak%\%date%
set bak_to=%svn_bak%\%date%\%svn_src%@%date%@%time%.svn
echo 开始将 %svn_db%\%svn_src% 备份到 %bak_to% …
%svn_bin%\svnadmin.exe dump %svn_db%\%svn_src% >> %bak_to%
echo 开始压缩 %bak_to% …
rem %svn_bin%\gzip -9 %bak_to%
%svn_bin%\bzip2 %bak_to%
echo 压缩 %bak_to% 完毕
echo 将 %svn_db%\%svn_src% 备份到 %bak_to% 完毕
set bak_to=
set svn_src=