Архивация папок и файлов с помощью скриптов — простое и дешёвое (зачастую бесплатное) решение для создания бекапов. Мы используем для этого консольный WinRar, потому что он умеет подставлять в название архива текущую дату и время по шаблону.

Однако есть проблема: если название папки в bat-файле написано в UNICODE, например, кириллицей, то утилита «не видит» эту папку, показывая в консоли, что папка не найдена, показывая вместо названия «кракозябры».

Решение, как оказалось, довольно простое: надо перед вызовом архиватора выполнить команду chcp 65001 >nul

Это смена кодировки, которая используется в консоли, на UTF-8, ну а «>nul» — просто перенаправление вывода в пустоту. «Улучшайзинг», чтобы не мусорить в консоли.

В итоге, чтобы сделать архив, например, папки «Мои документы», bat-файл выглядит вот так:

chcp 65001 >nul
rar a -m1 -r -agddmmyyhhmmss E:\backups\docs\docs_.rar «%USERPROFILE%\OneDrive\Документы\»

После отработки скрипта в папке E:\backups\docs\ появится файл вида docs_130924145752.rar (бекап сделан 13 сентября 2024 года, в в 14:57 и 52 секунды).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *