Как написать свой bat файл для создания резервной копии. Где хранит письма почтовый клиент The Bat! Как отменить резервное копирование в the bat

Наиболее доступный инструмент для резервного копирования - командная строка. Найти более-менее приличную реализацию резервного копирования в Windows-системах средствами CMD/BAT-файлов можно, воспользовавшись любым поисковиком. Однако часто нет необходимости накапливать и хранить все созданные архивы, достаточно лишь нескольких самых последних. В этом случае необходима реализация резервного копирования с поддержкой глубины архивации. Найти реализацию поддержки глубины архивации в таких скриптах уже гораздо сложнее.

Вашему вниманию - относительно простой скрипт (CMD-сценарий), реализующий резервное копирование с заданной глубиной архивации.

Скрипт предназначен для создания резервных копий путем упаковки в архив содержимого произвольного каталога. Помимо собственно поддержки глубины архивации в скрипте раеализовано сохранение новых резервных копий в каталоги, имена которых формируются на основе даты/времени резервирования. При выполнении архивации RAR будет пытаться открывать также совместно используемые файлы (бывает полезно, чтобы не заставлять пользователей обязательно выйти из программы; например, при резервировании файловых баз 1С). Удобнее всего использовать такой подход к резервированию данных, если прописать запуск скрипта в планировщик.

Содержимое скрипта:

SETLOCAL enabledelayedexpansion rem Глубина архивации (количество последних архивов, которые должны быть сохранены) SET ArcDepth=5 rem Путь к каталогу, в который будут складываться резервные копии SET DirName=My Backup"s rem Путь к каталогу с новым бэкапом (%DATE: =0% %TIME: =0% - замена пробелов в %DATE% и %TIME% на нули) FOR /f "tokens=1-7 delims=/-:., " %%a IN ("%DATE: =0% %TIME: =0%") do (SET NewBkDir=%DirName%\%%c.%%b.%%a_%%d.%%e.%%f.%%g) rem Путь к лог-файлу SET LogFile=%DirName%\%DirName%.LOG ECHO ***** НАЧАЛО %DATE% %TIME% ***** >> "%LogFile%" IF NOT EXIST "%DirName%" (MD "%DirName%" ECHO "%DirName%" - создан >> "%LogFile%") ECHO Создание нового каталога для бэкапа: >> "%LogFile%" IF NOT EXIST "%NewBkDir%" (MD "%NewBkDir%" ECHO "%NewBkDir%" - создан >> "%LogFile%") ELSE (ECHO "%NewBkDir%" - существовал ранее >> "%LogFile%") rem Блок создания новой резервной копии SET SrcData=D:\My Src SET ArcName=%NewBkDir%\MySrc.rar ECHO Архивация "%SrcData%" с помощью RAR >> "%LogFile%" rar a -m5 -md4096 -ep1 -ri1 -dh -ilog"%LogFile%" "%ArcName%" "%SrcData%" rem Соблюдение глубины архивации (должны остаться только последние %ARCDEPTH% каталогов) ECHO Удаление старых бэкапов: >> "%LogFile%" SET Index=0 rem DIR /AD /B /O-D "%DirName%" - получение упорядоченного по дате списка каталогов, начиная с самых новых FOR /f "tokens=1" %%i IN ("DIR /AD /B /O-D "%DirName%"") DO (rem Первые %ArcDepth% архивов пропускаем, остальные удаляем SET /a Index+=1 IF !Index! LEQ %ArcDepth% (echo "%DirName%\%%i" - оставлен >> "%LogFile%") else (RMDIR /S/Q "%DirName%\%%i" echo "%DirName%\%%i" - удален >> "%LogFile%")) ECHO ***** КОНЕЦ %DATE% %TIME% ***** >> "%LogFile%" ECHO. >> "%LogFile%" ECHO. >> "%LogFile%"

Поскольку используется консольная версия архиватора RAR, необходимо, чтобы для скрипта был доступен RAR.exe. Для новых локализованных версий архиватора помимо файла RAR.exe также желательно наличие файла RarLng.dll, а для зарегистрированных пользователей - еще и файла rarreg.key. Для обеспечения доступности можно, например, просто положить все нужные файлы в рабочий каталог скрипта.

Под глубиной архивации здесь подразумевается не промежуток времени, за который хранятся архивы, а количество последних хранимых архивов. При использовании интервала резервирования в 1 день (сутки) глубина резервирования в днях будет совпадать с количеством хранимых архивов.

В переменных, содержащих пути к файлам/каталогам, можно использовать и абсолютные, и относительные пути, а также пробелы.

В примере содержится только один блок непосредственного создания резервной копии (расположен после соответствующего комментария). Можно добавить несколько таких блоков один за другим, например, скопипастив имеющийся блок и изменив значения переменных SrcData и ArcName.

Резервные копии раскладываются в каталоги, имена которых содержат дату и время выполнения резервирования в следующем порядке: год, месяц, дата, часы, минуты, секунды, сотые доли секунды (справедливо для русских региональных настроек). Это необходимо для того, чтобы алфавитная сортировка списка резервных копий совпадала с сортировкой по дате/времени создания копий (то есть просто для удобства работы с копиями). В случае использования региональных настроек, в которых порядок следования элементов даты другой, для получения аналогичного эффекта необходимо изменить порядок токенов %%a-%%g в команде
SET NewBkDir=%DirName%\%%c.%%b.%%a_%%d.%%e.%%f.%%g

Проверка существования каталога с резервной копией перед его созданием нужна, если вдруг захочется из имени каталога убрать «лишнее» (например, сотые доли секунд) и запускать скрипт чаще, чем позволяет такое имя. В этом случае ошибки при выполнении не будет, но RAR честно перезапишет уже имеющиеся в каталоге архивы.

«Родная» кодировка для CMD-сценариев - OEM (866), а для Windows-версии архиватора RAR - ANSI (Windows-1251). В связи с этим лог-файл грешит некоторой неудобочитаемостью, если сценарий сохранить в родной для него OEM-кодировке. С одной строны, для себя я счел этот недостаток некритичным (в редакторе/просмотрщике Far Manager не трудно нажать F8 для смены кодировки), а с другой стороны ничто не мешает сохранить сценарий в кодировке ANSI (вывод в консоль командами ECHO в сценарии не используется - только в лог-файл, - поэтому пользователь никаких кракозяблов не увидит, зато лог будет нормально записываться в одной и той же кодировке). Буду благодарен, если предложите более корректный способ «подружить» эти кодировки.

Теги: командная строка Windows, резервное копирование, глубина архивации

Резервное копирование The Bat! позволяет сохранить копии писем из популярного почтового клиента на внешнем носителе. В The Bat! входит утилита бэкапа, но гораздо удобнее пользоваться для создания резервной копии The Bat! универсальными программами, например, Handy Backup.

Как сделать резервную копию Bat! с помощью Handy Backup?

Копирование файлов The Bat! в Handy Backup осуществляется с помощью стандартного плагина Computer . Чтобы создать задачу, автоматически выполняющую для The Bat! копирование каталога, пожалуйста, воспользуйтесь нижеследующей инструкцией.

  1. Откройте Handy Backup. Откройте мастер создания новой задачи с помощью кнопки или клавиш Ctrl+N.
  2. На Шаге 1 укажите, что создаёте задачу резервного копирования .
  3. Перейдите к Шагу 2 и откройте на левой панели группу Local and Network Drives.
  4. Дважды щёлкните мышью на названии плагина Computer . Откроется новое окно.

  1. Найдите рабочий каталог The Bat!
  2. Если это необходимо, отметьте "галочками" данные для бэкапа The Bat в каталоге.
  3. Нажмите ОК. Затем перейдите к Шагу 3, нажав “Далее”.

Совет: вы также можете настроить для The Bat! резервное копирование файлов по маске, нажав на Шаге 2 кнопку “Файловые фильтры” и выбрав в открывшемся диалоге маски имён файлов, которые хотите скопировать (так, внутренние файлы бэкапа Bat имеют маску имени *. tbk ).

  1. На Шаге 3 вы можете выбрать подходящее хранилище для резервной копии The Bat!
  2. Шаги 4 и 5 нужны для настройки дополнительных функций резервного копирования. Если вам нужны подробные описания этих шагов, обратитесь к Руководству Пользователя .
  3. На Шаге 6 вы можете автоматизировать запуск вашей задачи , настроив время и частоту повтора или выбрав события, приводящие к запуску.

  1. Пропустите Шаг 7, если вам не нужно запускать дополнительные программы до или после задачи (например, вы не хотите останавливать и перезапускать The Bat! при выполнении операции резервного копирования.
  2. На Шаге 8 дайте вашей задаче имя. Завершите работу мастера задач.

Как выполнить для The Bat! восстановление писем?

Для The Bat! восстановление каталога можно выполнить автоматически. Создайте в мастере задач задачу восстановления , на Шаге 2 выберите хранилище резервных копий The Bat! и найдите в нём нужный файл backup.hbi , содержащий всю информацию о восстанавливаемых данных.

Рекомендуемое решение для бэкапа почты The Bat! и восстановления из резервной копии

Скачать

Купить!

Версия 8.0.2 от 8 мая 2019 . 104 MB
Программа резервного копирования Handy Backup. 1200 RUB за лицензию

С создавайте резервные копии The Bat! на любые устройства хранения бэкапов. Бесплатный полнофункциональный пробный период - 30 дней!

Основные возможности бэкапа и восстановления почты The Bat!

Гибкие настройки

По сравнению со встроенной утилитой the Bat! Backup, Handy Backup предоставляет множество дополнительных функций: шифрование, сжатие, возможность производить для The Bat! копирование по сети , хранение нескольких версий бэкапа почты Bat, метки времени бэкапа и т.д.

Разнообразие хранилищ

Вы можете сами выбирать, где хранятся резервные копии The Bat, полученные с помощью Handy Backup. К вашим услугам локальные диски, внешние диски USB, устройства NAS, серверы FTP, SFTP и FTPS, облачные сервисы (например, бэкап на Яндекс.Диск , Google Диск, Backblaze и др.).

Копирование папок Bat с помощью Handy Backup может быть запущено в точно указанное время (с интервалом от минуты до нескольких месяцев), или по системному событию (вход в систему,


В почтовой программе The Bat! можно настроить автоматическое создание резервной копии данных, которое будет происходить в заданное время.

Способ 1

Чтобы включить автоматическое резервное копирование, необходимо перейти в меню Свойства -> Настройка -> Система и выбрать в разделе Резервное копирование Копировать каждые … дней , значение дней можно при этом изменить. Далее необходимо задать время начала создания резервной копии.

Нажмите на кнопку Дополнительно , чтобы перейти к настройкам автоматического резервного копирования.

В разделе Общее можно выбрать один из двух методов резервного копирования. Стандартный метод включает в себя создание файла резервной копии, содержащего все отмеченные для копирования данные. Автоматически созданный файл резервной копии имеет название autobackup.tbk . Нажав на кнопку Обзор , вы можете изменить путь сохранения данного файла. Чтобы использовать второй метод Дополнение к ранее созданному архиву , необходимо выбрать уже существующий файл резервной копии, нажав на кнопку Обзор . При этом автоматически созданный файл резервной копии будет включать лишь те данные, которые отсутствуют в выбранном архиве. В данном разделе можно выбрать, какие именно данные будут включены в резервную копию (Свойства почтового ящика, Почтовые папки, Адресные книги, Настройки пользователя, Прикреплённые файлы), а также отметить те почтовые ящики и адресные книги, которые вы желаете сохранить в архиве.

В разделе Дополнительные можно добавить Комментарий к файлу резервной копии и установить Пароль . Восстановить данные из копии, защищённой паролем, можно будет лишь после ввода данного пароля.

В разделе Папки вы можете отметить те папки, которые будут включены в архив. Для быстрого выбора папок можно воспользоваться ранее созданным Набором папок .

Для сохранения заданных настроек нажмите кнопку ОК .

Способ 2

Автоматическое резервное копирование можно настроить также в Планировщике .

Перейдите в меню Инструменты -> Планировщик (комбинация клавиш Alt+F11 ). В списке событий вызовите контекстное меню, нажав правой кнопкой мышки, и выберите Создать (горячая клавиша Insert ). Далее необходимо настроить событие:

В поле Описание укажите название события, которое будет отображено в первой колонке списка событий.

Далее укажите дату и время начала события. Длительность автоматического резервного копирования указывать не нужно, так как событие будет автоматически завершено по окончании создания резервной копии.

Убедитесь, что событие активно .

При активной опции Оповещать об этом событии вы получите предупреждение за определённое время до начала создания резервной копии. Активируйте данную опцию, чтобы автоматическое резервное копирование не помешало вашей работе в почтовом клиенте – во время создания резервной копии функции программы будут недоступны.

Если в заданное время почтовый клиент не был запущен, автоматическое резервное копирование выполняться не будет, однако если вы активируйте опции При старте сообщать о пропущенных событиях и Исполнять действия пропущенных событий , то при запуске программы автоматическое резервное копирование данных будет выполнено.

В разделе Действия нажмите кнопку Добавить и выберите действие Резервная копия .

В разделе Повторение вы можете задать условия повторения действия автоматического резервного копирования, выбрав опцию Повторять это событие каждые и соответствующее значение секунд/минут/часов/дней/недель/месяцев/лет.

В разделе Специальное можно задать более точную частоту выполнения автоматического резервного копирования.

Чтобы изменить настройки события автоматического резервного копирования, необходимо перейти в Планировщик , выделить соответствующее событие в списке, вызвать контекстное меню нажатием правой кнопки мышки и выбрать Свойства (горячая клавиша Enter ).

Сегодня мы узнаем про то, что такое bat файл и заодно создадим один из них.

Думаю, что многие, так или иначе, периодически создают (так называемые backup -ы) тех или иных файлов и папок.

Вроде все привычно и делать ничего особо сложного не надо: вставить флешку, открыть "Мой компьютер ", найти что надо скопировать, выделить, тыкнуть мышкой, выбрать "скопировать", перебраться в нужный каталог, тыкнуть "вставить" и тд.

Но зачастую все эти клики и лишние телодвижения несколько утомляют и отнимают ценное время, особенно при частых копированиях одних и тех же данных. В этой статье я расскажу как , а точнее написания такой штуки как bat файл .

Поехали.

Bat файл - что к чему, вводная

Для начала немного о том, что такое bat файл , зачем он нужен и с чем его (или их) едят. Дабы не изобретать велосипед воспользуюсь выдержкой из Википедии :

Пакетный файл (т.е bat файл, от англ. batch file ) - текстовый файл в MS-DOS, OS/2 или Windows , содержащий последовательность команд, предназначенных для исполнения командным интерпретатором.

После запуска пакетного файла, программа - интерпретатор (как правило COMMAND.COM или CMD.EXE ) читает его строка за строкой и последовательно исполняет команды.

Пакетный файл - аналог shell script в Unix -подобных операционных системах.

Пакетные файлы полезны для автоматического запуска приложений. Основная область применения - автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера.

Примерами таких операций могут служить - обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п.

Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for ), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного - 1 или большее значение).

Пакетные файлы в DOS имеют расширение.bat ; для других операционных систем они могут иметь другие расширения - например, .CMD в Windows NT и OS/2 , или .BTM в 4DOS или подобных оболочках.

С теорией разобрались, приступим к, собственно, практике, а именно созданию bat-ника.

Как создать bat файл и использовать его

Давайте подготовим небольшое тестовое поле, чтобы было на базе чего экспериментировать. Откройте мой компьютер и создайте на диске C:\ папочку test . Зайдите в неё и создайте в ней папку .

Накидайте туда файлов (штук 5-10 ) - фотки, документы и тд и тп (любых короче). Поле для экспериментов готово. Далее нам надо создать, собственно, сам bat файл по нажатию на который у нас будет происходить копирование папки C:\test\testcopy в, скажем, папку C:\test\backup . Создавать вторую папку (которая backup ) не надо - она будет появляться автоматически.

Создать bat очень просто. Жмем правой кнопкой мышки там где хотим его создать (расположение не важно - можно прямо на рабочем столе) и выбираем "Создать " - "Текстовый документ ".

Задаем созданному файлу название и открываем его блокнотом или любым другим текстовым редактором. Т.е. на данный момент мы имеем открытый текстовый файлик, который называется, допустим, копирование.txt .

Добавляем в файл команду, например, для копирования

Далее, собственно, нам в этот файлик нужно ввести команду, которая будет воспроизводиться по средством консоли (cmd ) при запуске этого файла. В данном случае мы воспользуемся командой xcopy ибо именно она позволяет копировать файлы, каталоги и подкаталоги. Учитывая все пути у нас получится следующая команда:

xcopy C:\test\testcopy C:\test\backup /f /i /y /s

Разъясняю что тут к чему:

  • xcopy - это сама команда;
  • C:\test\testcopy - это источник, т.е. папка откуда копируются файлы и каталоги;
  • C:\test\backup - это результат, т.е. место, куда будут скопированы файлы и каталоги;
  • /f /i /y /s - дополнительные параметры синтаксиса для команды xcopy (см.синтаксис ниже по тексту).

Количество строчек может быть любым, т.е. если Вам надо скопировать 100 папок, Вы пишете 100 строчек в одном файле и меняете в них только пути.

Какие есть (т.е. те, что я указал в данном примере):

  • /f - выводит имена исходных файлов и файлов-результатов в процессе копирования
  • /i - создает новый каталог в случае, если тот отсутствует в конечном пути
  • /y - перезаписывает файл в случае, если он уже есть
  • /s - копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.

Как по мне - это основной список параметров необходимых для "тихого" копирования, т.е. без лишних вопросов о перезаписи, создания каталогов и прочей шушеры. Касательно остального синтаксиса можно почитать, например, .

Меняем формат файла и пробуем его запустить

Сначала открываем "Мой компьютер ", там переходим "Сервис " - "Свойства папки " - "Вид " и снимаем галочку "Скрывать расширение для зарегистрированных типов файлов ".

Жмем "Применить " и "Ок ". Теперь мы можем менять расширение известных системе файлов, а посему направляемся к нашему файлику, жмем правой кнопкой мышки, выбираем "Переименовать " и методом печатания на клавиатуре меняем расширение с txt на bat (на вопрос системы стоит ли это делать отвечаем утвердительно).

В результате мы имеем следующую картину (в вашем случае файлик называется иначе, но имеет тот же формат):

Собственно, все, что нам остается - это запустить этот файл простым кликом по нему мышки.

Если Вы все сделали правильно, то перед Вами промелькнет консоль и по известному пути появится новая папочка с заданным заранее названием и файлами внутри скопированными из известной Вам папки, т.е картина получится примерно следующая:

Ну или несколько другая, в зависимости от того какие пути и названия папок Вы прописывали в команде.
Отредактировать файлик можно сменив ему расширение обратно на.txt и открыв любым текстовым редактором.

Послесловие

Как я уже сказал и Вы сами наверное осознали - использование подобного bat файл "а зачастую экономит кучу времени, т.е. один раз написал и периодически запускаешь одним кликом и вместо многоминутных тычков мышкой и ползания по всем папкам получаешь автоматизированный процесс копирования.

При желании можно поставить запуск этого bat -ника в определенные дни через планировщик Windows (или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup "ов.

Если есть какие-то вопросы или проблемы - спрашивайте. Как всегда помогу чем смогу;)

PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела "Автоматизация администрирования ".. так что можете собой гордится:)

  • Опишу и приведу примеры создания бэкапов используя командную строку.
  • “Подробно” распишу команду xCOPY и как применить WinRar в создании бэкапа.
  • Создание папкиархива с именем: текущая дата.

Процитирую баш.орг.ру:

Год за годом все новые админы бэкапят серверные винты на логических разделах тех же самых винтов.

Резервное копирование с использованием xCOPY

Пример скрипта, копирующего файлы в каталог f:backupnew , при втором запуске переименовывает каталог new в old , создает заново каталог new и копирует файлы. Т.е. батника дает возможность хранить “двухдневные” бэкапы:

del “f:backupold” /s /q

Rmdir “f:backupold” /s /q

Rename “f:backupnew” “old”

Mkdir “f:backupnew”

Xcopy “D:123*.*” “f:backupnew*.*” /E /F /H /R /K /Y /D

Можно поступить иначе, например команда md %date:~0,2%.%date:~3,2%.%date:~6,4% создает папку, имя которой – текущая дата:

mkdir “f:backup%date:~0,2%.%date:~3,2%.%date:~6,4%”

xcopy “e:superBD*.*” “f:backup%date:~0,2%.%date:~3,2%.%date:~6,4%*.*” /E /F /H /R /K /Y /D

rem Должно работать и без mkdir, т.к. xcopy сам бы создал папку. Подстраховка =)

Поясню по используемым ключам XCOPY:

/E Копирует все подкаталоги, включая пустые.

/F Выводит имена исходных файлов и файлов-результатов в процессе копирования.

/H Включает в операцию копирования скрытые и системные файлы. По умолчанию системные файлы игнорируются.

/R Копирует файлы с атрибутом «только для чтения».

/K Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут.

/Y Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.

/D[:мм-дд-гггг] Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы.

О дополнительных ключах xcopy можно почитать на

Резервное копирование с использованием WinRAR

del “f:backupold” /s /q

Rmdir “f:backupold” /s /q

Rename “f:backupnew” “old”

Mkdir “f:backupnew”

“C:Program FilesWinRARRar.exe” a -m5 -r -t -dh -idp f:backupnewbackup.rar “D:superBD*.*” >> f:backupnewbackup.log

Если прикрутить сюда вышеописанную %date:~0,2%.%date:~3,2%.%date:~6,4% , то

“C:Program FilesWinRARRar.exe” a -m5 -r -t -dh -idp f:backup.rar “E:superBD*.*” >> f:%date:~0,2%.%date:~3,2%.%date:~6,4%.log

Ren “f:backup.rar” “%date:~0,2%.%date:~3,2%.%date:~6,4%.rar”

log-файлы я стер

Подробнее о ключах запуска Rar.exe можно почитать в файле C:Program FilesWinRARRar.txt

После того как батник создан и проверен – можно создать задание на автоматический запуск, например ночью, когда юзвер спит . Жми пуск выполнить – вводи control schedtasks – жми ентер . Откроется планировщик заданий, там проще некуда.

Удачи!

З.Ы. Не бэкапьте на логических разделах тех же самых винтов.