​​​ 用记事本新建个.bat文件,把下面的内容copy到文本中保存,修改你自己的环境设置,就好实现这脚本的功能了。

bakcup_svn.bat

SET ZIP_CMD=e:\backup_command\7-zip\7z.ex

SET REPO_PATH=d:\SVNROOT\%1


SET REPO_NAME=%1



SET DATE=%2



SET BACKUP_ROOT=E:\backup_root\svn


SET SUBVERSION_ROOT="D:\VisualSVN Server"


SET BACKUP_FILE=%BACKUP_ROOT%\%DATE%\%REPO_NAME%.%DATE%.svn_dump



mkdir %BACKUP_ROOT%\%DATE%



%SUBVERSION_ROOT%\bin\svnadmin.exe dump %REPO_PATH% > %BACKUP_FILE%



%ZIP_CMD% a -tzip %BACKUP_ROOT%\%DATE%\%REPO_NAME%_%DATE%.zip %BACKUP_FILE%


del %BACKUP_FILE% /Q /S


*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/


dim strRRev

strRRev = GetYoungestFileRev("D:\Work\软件研发中心\SVN备份\youngestRev.txt")

dim strLastRev

'写最新版本

call WriteLastRev()

strLastRev = GetYoungestFileRev("D:\Work\软件研发中心\SVN备份\youngestRev.txt")

'开始增量备份

call DoDailyBackup(clng(strRRev)+1,strLastRev)

msgbox "ok"


function GetYoungestFileRev(vPath)

    Dim vYoungestFile

    vYoungestFile = vPath

    Dim vFso

    Set vFso = CreateObject("Scripting.FileSystemObject")

    Dim vstream

    Set vstream = vFso.OpenTextFile(vYoungestFile, 1, false)

    Dim vRRev '上一个版本

    While Not vstream.AtEndOfStream

        vRRev = vstream.ReadLine

    Wend

    GetYoungestFileRev = vRRev

    vstream.close

    set vstream = nothing

    set vfso = nothing

end function


function DoDailyBackup(vPRev,vLRev)

    Set WshShell = Wscript.CreateObject("Wscript.Shell")

    dim vDailyBKCMD

    dim vSVNRoot

    dim vSVNADMIN

    dim svn_repos

    dim backup_dir

    dim next_backup_file

    dim vdate

    dim vProjName

    vdate =  fomat(date,"yyyy-mm-dd")


    vSVNRoot = "D:\Program Files\VisualSVN Server\bin"

    vSVNADMIN = vSVNRoot & "\svnadmin"

    vProjName = "GeoGlobe4_5"

    svn_repos = "D:\SourcesafeSVN\Repositories\"& vProjName


    backup_dir = "D:\SVNBACKUP\WeekBackup\svn\" &vdate& "\"

    next_backup_file = vProjName& "_daily_incremental_backup" & "_" & vdate &


".svn_dump"

    vDailyBKCMD = vSVNADMIN & " dump --incremental --revision " & vPRev & " " &


vLRev &" " & svn_repos & " > " &backup_dir & next_backup_file

    WshShell.Run vDailyBKCMD

end function

function WriteLastRev()

    Set WshShell = Wscript.CreateObject("Wscript.Shell")

    WshShell.Run "D:\SVNBACKUP\GetYoungestRev.bat"

end function


*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/


SET hour=%time:~0,2%

SET hour=%hour: =%

SET DATE=%date:~0,10%_%hour%_%time:~3,2%_%time:~6,2%


bakcup_one_svn.bat 库1 %DATE%

bakcup_one_svn.bat 库2 %DATE%