CCCPaste

Backup all SVN repositories

@echo off

echo Backup all SVN repositories using Hungarian date format
echo 
echo Based on http://serverfault.com/a/573221/305124
echo To auto-elevate only this script, 
echo use http://www.nirsoft.net/utils/nircmd2.html nircmd elevate

set svnAdminPath="C:\Program Files\VisualSVN Server\bin"
set sevenZipPath="C:\Program Files\7-Zip"
set repositoryRoot=c:\Users\DBA\Documents\Repositories
set backupPath=c:\Users\DBA\Documents\Backup
set dateStamp=%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%

for /f %%f in ('dir /b /AD %%repositoryRoot%%') do ( 
call:dumpRepository %%f 
call:zipLastDump
)
goto:eof

:dumpRepository
cd /d %svnAdminPath%
set repoPath=%repositoryRoot%/%~1
set dumpFile=%~1_%dateStamp%
echo.-------------------
echo.Dumping %~1 to %dumpFile%.dump
echo.-------------------
svnadmin dump "%repoPath%" > "%backupPath%\%dumpFile%.dump"
exit /b

:zipLastDump
cd /d %sevenZipPath%
set zipFile="%backupPath%\%dumpFile%.7z"
echo.-------------------
echo.Zipping %dumpFile%.dump to %zipFile%
echo.-------------------
7z a "%zipFile%" "%backupPath%\%dumpFile%.dump" 
del "%backupPath%\%dumpFile%.dump" 
exit /b