Архивация папок и файлов с помощью скриптов — простое и дешёвое (зачастую бесплатное) решение для создания бекапов. Мы используем для этого консольный 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 секунды).