Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Нужен батник (архивация самого свежего файла с последующим копированием) (http://forum.oszone.net/showthread.php?t=318843)

shade_art 16-09-2016 12:50 2669156

Нужен батник (архивация самого свежего файла с последующим копированием)
 
Здравствуйте

Задача создать батник, который будет выполнять следующее

1. Выбирает самый свежий файл из тех что находятся в папке (скорее всего это будет .bak)
2. Архивирует его сильным сжатием и устанавливает пароль (winrar видимо?)
3. После того, как завершится процесс сжатия, перемещает готовый архив на сетевую папку.


Спасибо заранее за помощь!!

Iska 16-09-2016 13:23 2669167

Цитата:

Цитата shade_art
самый свежий файл »

«Свежий» по дате создания или по дате последней модификации?

shade_art 16-09-2016 14:51 2669197

По дате создания файла.

megaloman 16-09-2016 15:44 2669214

Вот вариант батника.
Код:

@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 2669282

Спасибо огромное!!! Буду проверять. Отпишусь по результату.


Время: 14:00.

Время: 14:00.
© OSzone.net 2001-