Как заархивировать файлы с датой создания этих файлов?
Есть несколько файлов для архивации архиватором 7-zip.
Нужно чтобы в названии создаваемого архива, была дата создания этих файлов.
Код:
7za a -t7z backup-%date%.7z -mx9 @filelist.txt -scsWIN -ssw
Вот как я узнаю дату создания файлов:
Код:
for %%i in ("1.doc") do echo %%~ti>date.txt
Каким образом из файла date.txt взять текст " 09.08.2012" и добавить в название создаваемого архива backup-ДАТА.7z, где ДАТА - 09.08.2012?
|
Цитата:
Цитата yaoleg2
Нужно чтобы в названии создаваемого архива, была дата создания этих файлов. »
|
Если даты создания у файлов разные?
Цитата:
Цитата yaoleg2
Вот как я узнаю дату создания файлов: »
|
Вы некорректно узнаёте дату создания файлов. Во-первых, не «файлов», а «файла». Во-вторых, таким вот образом Вы узнаёте дату последней модификации файла, а отнюдь не дату его создания.
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sFile=1.doc
if exist "%sFile%" (
for /f "usebackq" %%i in (`2^>nul dir /t:c "%sFile%" ^| find.exe /i "%sFile%"`) do set sDate=%%~i
if defined sDate (
"%ProgramFiles%\7-ZipA\7za.exe" a -t7z -mx9 -i@"filelist.txt" -scsWIN -ssw "backup-!sDate!.7z"
) else (
echo Can't determine Date created for file [%sFile%].
)
) else (
echo Can't find file [%sFile%].
)
endlocal
exit /b 0
Я бы вообще использовал такое:
читать дальше »
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sFile=1.doc
for %%i in ("%sFile%") do set sFullFileName=%%~fi
if exist "%sFullFileName%" (
for /f "usebackq" %%i in (`2^>nul wmic.exe DataFile WHERE "Name='%sFullFileName:\=\\%'" get CreationDate /value ^| find.exe /i "CreationDate"`) do set s%%i
if defined sCreationDate (
"%ProgramFiles%\7-ZipA\7za.exe" a -t7z -mx9 -i@"filelist.txt" -scsWIN -ssw "backup-!sCreationDate:~0,8!.7z"
) else (
echo Can't determine Date created for file [%sFullFileName%].
)
) else (
echo Can't find file [%sFullFileName%].
)
endlocal
exit /b 0
— в отсортированном по именам списке по формату «YYYYMMDD» удобнее ориентироваться нежели в разбросанном там и сям списке по формату «DD.MM.YYYY».
|
Время: 02:45.
© OSzone.net 2001-