Набросал ещё один маленький BAT скрипт для резервного копирование папки. Внесите свои данные и через scheduler настройте расписание резервного копирования.
Ссылки
Функции
- С помощью xcopy делает резервные копии папки.
- Каждый бэкап сохраняется в отдельную подпапку вида DD.MM.YYYY_hhmmmss.
- С помощью 7-Zip архивирует резервные копии.
- Удаляет старые резервные копии.
Код
@echo off
SetLocal EnableDelayedExpansion
rem =============================
rem ====== admin variables ======
rem =============================
set DirName=my_folder
set SourceDir=C:\%DirName%
set BackupDir=B:\%DirName%\daily\
set NumFolders=10
rem =============================
rem ======== 7-Zip path =========
rem =============================
set a7z=%ProgramFiles%\7-Zip\7z.exe
rem =============================
rem == create backup directory ==
rem ==== DD.MM.YYYY_hhmmmss =====
rem =============================
set h=%time:~0,2%
set h=%h: =0%
set FullBackupDir=%BackupDir%%date%_%h%%time:~3,2%%time:~6,2%\
md %FullBackupDir%
rem =============================
rem ====== copy directory =======
rem =============================
xcopy %SourceDir% %FullBackupDir%%DirName%\ /E /F /H /R /K /Y /D 2>nul >nul
rem =============================
rem ====== zip directory ========
rem =============================
"%a7z%" a -tzip -bb0 -bd -sdel "%FullBackupDir%%DirName%.zip" "%FullBackupDir%" 2>nul >nul
rem =============================
rem ==== remove old folders =====
rem =============================
for /f "tokens=* delims=" %%D in ('dir %BackupDir% /ad /b /o-d') do (
if not %%D=="" (
if not !NumFolders!==0 (
set /a NumFolders-=1
) else (
rd /s /q %BackupDir%%%D 2>nul >nul
)
)
)
- DirName - название папки
- SourceDir - что бэкапим
- BackupDir - куда бэкапим
- NumFolders - сколько подпапок с бэкапами хранить
- a7z - путь к 7z.exe
Пример настройки расписания
В Task Scheduler настраиваем новое задание.
Выбираем пользователя, от имени которого будет выполняться резервное копирование. После сохранения задания нас спросят пароль от него. Ставим галку Run whether user is logged or not — запускать даже если юзер не залогинен.
В триггерах настраиваем расписание. У меня резервное копирование происходит раз в сутки.
Указываем ссылку на наш BAT файл.
Настраиваем условия.
Проверяем настройки. OK.
Теперь папка будет резервироваться раз в день. С настройкой NumFolders=10 в BAT файле мы будем хранить данные за последние 10 дней.
Если хотите хранить ежедневные и ежемесячные резервные копии — сделайте два BAT файла и два расписания резервного копирования в разные папки.
Источник:
https://internet-lab.ru/bat_folder_backup
Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.