shade_art
16-09-2016, 12:50
Здравствуйте
Задача создать батник, который будет выполнять следующее
1. Выбирает самый свежий файл из тех что находятся в папке (скорее всего это будет .bak)
2. Архивирует его сильным сжатием и устанавливает пароль (winrar видимо?)
3. После того, как завершится процесс сжатия, перемещает готовый архив на сетевую папку.
Спасибо заранее за помощь!!
самый свежий файл »
«Свежий» по дате создания или по дате последней модификации?
megaloman
16-09-2016, 15:44
@Echo Off
Set "Where=D:\Delete"
Set "Mask=*.*"
Set "Out=Z:\Box_Out"
Set "Dir=Dir /A:-D /O:-D /T:C"
rem Set "Dir=Dir /A:-D /O:-D /T:W"
Set "Rar="C:\Program Files\WinRAR\Winrar.exe" a -ep -m5 -pPASSWORD"
FOR /F "usebackq tokens=1,2,3,* skip=5" %%i IN (`%Dir% "%Where%\%Mask%" 2^>nul`) DO (
Set "FDate=%%i"
Set "FTime=%%j"
Set "FName=%%l"
GoTo :Continue
)
GoTo :Eof
:Continue
Set "NFName=%FDate:~6,4%%FDate:~3,2%%FDate:~0,2%_%FTime:~0,2%%FTime:~3,2% %FName% .rar"
rem If Exist "%Out%\%NFName%" GoTo :Eof
%Rar% "%Out%\%NFName%" "%Where%\%FName%"1. Сделано по времени создания. Считаю, что надо делать архив по времени модификации. Для этого уберите rem из строки
rem Set "Dir=Dir /A:-D /O:-D /T:W"
2. Не советую использовать сильное сжатие -m5 в архиваторе rar. Сильно возрастает время архивирования и ненамного лучше ужимается архив. Используйте стандартный -m3, а для больших архивов если критично по времени, то -m2 а то и -m1.
3. Пропишите свои пути, где хранятся
Where исходные файлы
Mask маска файлов для архивации (например, не *.* как у меня, а *.bak)
Out путь, где хранятся архивы, напимер \\Server\Share\Directory
4. Для Rar пропишите, где он находится, и вместо PASSWORD желаемый пароль. Правда, при этом безопасность сомнительна, так как пароль хранится в явном виде в батнике.
В батнике предполагается что формат даты и времени дд.мм.гггг чч:мм
shade_art
16-09-2016, 20:07
Спасибо огромное!!! Буду проверять. Отпишусь по результату.
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.