Вот пакетный файл для более общего использования этой общей задачи, поскольку папка с подпапками для архивирования может быть указана в качестве первого параметра при запуске пакетного файла.
@echo off
setlocal
set "BackupFolder=C:\Backup"
rem Folder to archive can be optionally specified as parameter.
if "%~1" == "" (
set "FolderToArchive=C:\projects"
) else (
set "FolderToArchive=%~1"
)
rem Check existence of the folder to archive.
if not exist "%FolderToArchive%\*" (
echo.
echo Error: Folder %FolderToArchive% does not exist.
echo.
endlocal
pause
goto :EOF
)
rem Check existence of backup folder and create this folder
rem if not already existing with verification on success.
if not exist "%BackupFolder%\*" (
md "%BackupFolder%"
if errorlevel 1 (
echo.
echo Error: Folder %BackupFolder% could not be created.
echo.
endlocal
pause
goto :EOF
)
)
rem Archive each subfolder in specified or default folder to archive
rem as separate archive with name of folder as archive file name and
rem with current date and an automatically incremented number with at
rem least 2 digits appended to the archive file name to be able to
rem create multiple archives on different days and even on same day.
rem Parent directory path of each subfolder is removed from archive.
rem The name of the subfolder itself is added to each archive. This
rem can be changed by replacing "%%D" with "%%D\" or "%%D\*". Then
rem the files and subfolders of the compressed folder would be added
rem to archive without the name of the compfessed folder.
rem Best compression is used on creating a solid archive with 4 MB
rem dictionary size. All messages are suppressed except error messages.
rem The last modification time of the created archive file is set to
rem date and time of newest file inside the archive.
set "RarError=0"
for /D %%D in ("%FolderToArchive%\*") do (
echo Archiving %%D ...
"%ProgramFiles%\WinRAR\Rar.exe" a -ag_YYYY-MM-DD_NN -cfg- -ep1 -idq -m5 -md4m -r -s -tl -y "%BackupFolder%\%%~nD.rar" "%%D"
if errorlevel 1 set "RarError=1"
)
rem Wait for a key press if an error occurred on creating an archive file.
if "%RarError%" == "1" (
echo.
pause
)
endlocal
Подробнее об используемых переключателях Rar в командной строке откройте текстовый файл Rar.txt
в папке с программными файлами WinRAR , который является руководством для консольной версии Rar.exe
, и прочитайте объяснения для этих переключателей.
Примечание: Команда a (добавить в архив) используется в приведенном выше коде пакета вместо m (перейти в архив).
Руководство по использованию WinRAR.exe
из командного файла можно найти в справке WinRAR на вкладке Содержание в элементе Режим командной строки .
Существуют некоторые различия в списке переключателей между консольной и графической версиями WinRAR . Например, WinRAR.exe
поддерживает также создание ZIP-архивов, которые Rar.exe
не поддерживает. Поэтому WinRAR.exe
поддерживает переключатель -af<type>
, который не поддерживается консольной версией. Или переключатель -idq
(тихий режим) консольной версии является переключателем -ibck
(работает в фоновом режиме) для версии с графическим интерфейсом.
Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.
echo /?
endlocal /?
for /?
if /?
md /?
pause /?
rem /?
set /?
setlocal /?
Примечание. Такое архивирование также можно выполнить с помощью WinRAR , выбрав в WinRAR папки для архивирования, щелкнув значок Добавить на панели инструментов и вставив C:\Backup\
on Имя архива и опция включения Поместить каждый файл в отдельный архив на вкладке Файлы . Другие параметры, используемые в пакетном файле, указанном выше с помощью переключателей, можно найти на вкладках Общие , Резервное копирование и Время .