Skip to content

Instantly share code, notes, and snippets.

@wyfinger
Created May 8, 2017 06:48
Show Gist options
  • Save wyfinger/a1769c1752806eb8a111826809d6fedb to your computer and use it in GitHub Desktop.
Save wyfinger/a1769c1752806eb8a111826809d6fedb to your computer and use it in GitHub Desktop.
My BAT code to everday backup my files with RAR
@ECHO OFF
rem Работаем с Rar5, если это не нужно удалить ключи -ma
ECHO ┌─────────────────────────────────────────────────┐
ECHO │ Бекап шаблонов Word/Excel/Outlook │
ECHO └─────────────────────────────────────────────────┘
"C:\Program Files\WinRAR\rar.exe" a -ma -pbak -ed -ep -dh -m5 -s -idcd -agYYYY-MM-DD -r "F:\Backups\VBA.bak\" "%userprofile%\AppData\Roaming\Microsoft\Шаблоны\Normal.dotm" "%userprofile%\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB"
ECHO.
ECHO ┌─────────────────────────────────────────────────┐
ECHO │ Инкрементальный бекап исходников │
ECHO └─────────────────────────────────────────────────┘
SET dirFrom=E:\DEV
SET dirTo=F:\Backups\Dev.bak
SET maskExcept=-x*\*.~* -x*\*.dcu -x*.git*\
SET LAST_ARCHIVE=0
FOR /f "tokens=1-5 delims=.: " %%a IN ('DIR "%dirTo%\" /A:-D ^| findstr /B "[0-9]" ^| findstr /L ".rar"') DO (
IF %%c%%b%%a%%d%%e GTR %LAST_ARCHIVE% (
SET LAST_ARCHIVE=%%c%%b%%a%%d%%e
SET LAST_ARCHIVE_DATE=%%c-%%b-%%a %%d:%%e
)
)
ECHO Бекап файлов, измененных после %LAST_ARCHIVE_DATE%
"C:\Program Files\WinRAR\rar.exe" a -ma -pbak -ed -dh -m5 -s -idcd -ta%LAST_ARCHIVE% -agYYYY-MM-DD -r %maskExcept% "%dirTo%\" "%dirFrom%"
ECHO.
ECHO.
ECHO ┌─────────────────────────────────────────────────┐
ECHO │ Инкрементальный бекап Yandex.Disk │
ECHO └─────────────────────────────────────────────────┘
SET dirFrom=E:\Yandex.Disk
SET dirTo=F:\Backups\YandexDisk.bak
SET maskExcept=-x*\Thumbs.db -xdev*\
ECHO Удаление устаревших бекапов (старше 300 дней)
forfiles /p "%dirTo%" /m *.rar /D -300 -C "cmd /c del /q @path"
SET LAST_ARCHIVE=0
FOR /f "tokens=1-5 delims=.: " %%a IN ('DIR "%dirTo%\" /A:-D ^| findstr /B "[0-9]" ^| findstr /L ".rar"') DO (
IF %%c%%b%%a%%d%%e GTR %LAST_ARCHIVE% (
SET LAST_ARCHIVE=%%c%%b%%a%%d%%e
SET LAST_ARCHIVE_DATE=%%c-%%b-%%a %%d:%%e
)
)
ECHO Бекап файлов, измененных после %LAST_ARCHIVE_DATE%
@ECHO OFF
"C:\Program Files\WinRAR\rar.exe" a -ma -pbak -ta%LAST_ARCHIVE% -ed -dh -m5 -s -idcd -agYYYY-MM-DD -r %maskExcept% "%dirTo%\" "%dirFrom%"
@ECHO ON
ECHO.
ECHO.
ECHO ┌─────────────────────────────────────────────────┐
ECHO │ ГОТОВО │
ECHO └─────────────────────────────────────────────────┘
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment