Created
May 8, 2017 06:48
-
-
Save wyfinger/a1769c1752806eb8a111826809d6fedb to your computer and use it in GitHub Desktop.
My BAT code to everday backup my files with RAR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@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