Эту задачу можно выполнить на компьютере Windows с настройками региона, используя командный файл со следующими командными строками:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "FolderToBackup=D:\doc\aatmp"
rem Get last modification date/time of the folder to backup
rem in region dependent format which is YYYY-MM-DD hh:mm.
for %%I in ("%FolderToBackup%") do set "FolderTimeStamp=%%~tI"
rem Get from this date/time string just the year, month
rem and day of month from the date without the hyphens.
set "FolderTimeStamp=%FolderTimeStamp:~0,4%%FolderTimeStamp:~5,2%%FolderTimeStamp:~8,2%"
rem Compress the folder to backup into a RAR archive file with
rem last modification date of folder used in archive file name.
"%ProgramFiles%\WinRAR\WinRAR.exe" a -ac -cfg- -dh -ep1 -ibck -m4 -oh -ol -os -ow -r -ts -y -- kk_%FolderTimeStamp%.rar "%FolderToBackup%"
rem Restore the environment as set before usage of command SETLOCAL at top.
endlocal
Например, строка, назначенная переменной среды FolderTimeStamp
:
2014-06-01 22:12
Эта строка должна быть изменена на:
20140601
Это делается с помощью подстановки строки, как объяснено при помощи команды SET , выводимой при запуске в окне командной строкиset /?
а также ответом на Что означает% date: ~ -4,4 %% date: ~ -10,2 %% date: ~ -7,2% _% time: ~ 0,2%% time: ~ 3,2% означает?
Подсчет индекса символа начинается с 0. Первое число после :~
всегда является индексом символа (слева на положительном или справа на отрицательном)и второе число здесь всегда количество символов.
Первый символ года находится под индексом 0
, а год состоит из четырех символов.По этой причине первая строковая подстановка - это :~0,4
для получения символов из индекса 0
в индекс 3
.
Дефис в символьном индексе 4
не должен быть в имени файла и игнорируется дляэта причина.
Следующие два символа в строке метки времени папки - это месяц в символьных индексах 5
и 6
, что является причиной использования :~5,2
.
Дефис виндекс символов 7
снова игнорируется, поскольку он не нужен для имени файла.
Следующими двумя символами в строке метки времени папки являются день месяца в индексах символов 8
и 9
, что является причинойиспользование :~8,2
.
Последние шесть символов, начиная с индекса символов 10
, не представляют интереса для имени файла.Поэтому эти шесть символов также игнорируются.
WinRAR выполняется после определения даты последнего изменения папки для резервного копирования и переформатирования отметки времени, подходящей для имени файла архива, для создания архива RAR сэта строка в имени файла архива со следующими дополнительными параметрами, указанными с помощью ключей:
-ac
... clear archive атрибут после сжатия, чтобы узнать, какие файлы включены в последний архиви которые были изменены с момента последнего резервного копирования. -cfg-
... игнорировать профиль по умолчанию и переменную среды. -dh
... открыть общие файлы. -ep1
... исключить базовую папку из имен, что означает, что D:\doc
не включен в архив, но папка aatmp
со всеми ее атрибутами, отметками времени и разрешениями включена в архив.См. Ответ по Просто сожмите 1 папку в пакете с помощью командной строки WinRAR? для получения подробной информации о различиях при указании в командной строке "%FolderToBackup%"
без обратной косой черты в конце или "%FolderToBackup\"
с обратной косой чертой в конце. -ibck
... запустить WinRAR в фоновом режиме, что означает сворачивание в системный трей. -m4
... использовать хорошо сжатие. -oh
... сохранить жесткие ссылки в виде ссылки вместо файла. -ol
... сохранить символические ссылки в виде ссылки вместо файла. -os
... сохранить потоки NTFS. -ow
... обработать информацию о безопасности файла. -r
... рекурсивно добавить все подпапки и файлы. -ts
... сохранить все времена файла (изменение, создание, доступ). -y
... предполагается Да по всем запросам. --
... больше нет переключателя.
Start WinRAR , щелкните в последнем главном меню Справка в первом пункте меню Разделы справки , щелкните вкладку Содержание в элементе списка Командная строкаmode , щелкните элемент списка Switches и прочитайте соответствующую страницу справки для используемых переключателей для получения подробной информации.
Созданный архив RAR является реальной резервной копией, поскольку он включает в себя не только файлы и подпапки с их датами последнего изменения и атрибутами, но также с датами создания и последнего доступа, альтернативные потоки данных в случае, если у любого файла есть один, жесткий исимволические ссылки и разрешения безопасности NTFS, чтобы иметь возможность действительно восстановить все при извлечении архива RAR с соответствующими коммутаторами и с использованием учетной записи, которая поддерживает восстановление даже разрешений безопасности NTFS.
Для понимания других используемых команд, не объясненныхподробно выше и как они работают, откройте окно командной строки, выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.
echo /?
endlocal /?
for /?
rem /?
set /?
setlocal /?