Ссылка: Как создать архив RAR с датой архивной папки в имени файла архива?
Используя указанный пакетный файл, я могу создать хороший упакованный файл для папки, которую я хочу сделать резервную копию.
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "FolderToBackup=%1"
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.
"%Programw6432%\WinRAR\WinRAR.exe" a -ac -cfg- -dh -ep1 -ibck -m4 -oh -ol -os -ow -r -ts -y -- %FolderTimeStamp%_%FolderToBackup%.rar "%FolderToBackup%"
rem Restore the environment as set before usage of command SETLOCAL at top.
endlocal
Я привык управлять своими файлами с помощью Total Commander.
Я настроил пакетный файл как кнопку на панели кнопок TC с настройкой кнопки Параметры: %s
. Когда активным элементом является папка типа d:\doc\aatemp
в TC, я нажимаю кнопку, и TC вызывает пакетный файл и передает правильное имя папки в пакетный файл, который упаковывает папку.
Для более чем одной папки я хочу сделать, как указано выше.
Итак, я сделал еще один командный файл с настройкой кнопки Параметры: %L
.
TC создает файл списка в папке для временных файлов при использовании %L
с полными именами выбранных файлов / папок, записанных в этот файл списка, и вызывает пакетный файл с полным именем этого файла временного списка.
rem @echo off
rem Processing of %L or %WL
REM setlocal EnableExtensions DisableDelayedExpansion
setlocal enabledelayedexpansion
rem for /f "usebackq delims=" %%s in (`type %1`) do echo "%%s"
for /f "usebackq delims=" %%s in (`type %1`) do (
echo "%%s"
rem pause
rem
set FolderToBackup=%%s
echo !FolderToBackup!
REM pause
if "!FolderToBackup:~-1!"=="\" set "FolderToBackup=!FolderToBackup:~0,-1!"
echo !FolderToBackup!
pause
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"
echo !FolderTimeStamp!
pause
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!"
echo !FolderTimeStamp!
pause
rem Compress the folder to backup into a RAR archive file with
rem last modification date of folder used in archive file name.
rem "!Programw6432!\WinRAR\WinRAR.exe" a -ac -cfg- -dh -ep1 -ibck -m4 -oh -ol -os -ow -r -ts -y -- !FolderTimeStamp!_!FolderToBackup!.rar !FolderToBackup!
c:\Program Files\WinRAR\WinRAR.exe a -ac -cfg- -dh -ep1 -ibck -m4 -oh -ol -os -ow -r -ts -y -- !FolderTimeStamp!_!FolderToBackup!.rar !FolderToBackup!
)
rem Restore the environment as set before usage of command SETLOCAL at top.
endlocal
Я могу видеть с помощью команды pause
вывод, как я хочу, перед командной строкой с WinRAR.exe
.
Командная строка с WinRAR.exe
не может работать с файлом списка, как я хочу.