Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo off
Set Kuda=\\Server\Backup.arc
Set Otkuda=C:\Backup

Set Rar="C:\Program files\Winrar\Winrar.exe" a -r -ep1 

FOR /F "usebackq delims=" %%d IN (`Dir %Otkuda%\*.* /b /A:D`) DO Call :DirToDay "%Otkuda%\%%d" "%%d"
GoTo :Eof

:DirToDay
FOR /F "usebackq tokens=1,2" %%i IN ('%~t1') DO Set DateDir=%%i
If %DateDir%==%Date% (
    %Rar% "%Otkuda%\%~2" %1
    Echo Move /Y "%Otkuda%\*.rar" "%Kuda%\"
    Move /Y "%Otkuda%\*.rar" "%Kuda%\" 
)
GoTo :Eof
Этот вариант найдёт папку(и), изменённую сегодня, упакует её (их, каждую по отдельности) с именем папки, переместит куда укАжите. Первый вариант, не считая имени, практически делает то же самое, единственное, в Rar добавить ключ -ep1 , чтобы в архиве не было базовой директории.
Можете в этом решении использовать 7z, но в строке Set Rar=... пропишите вызов и ключи для 7Z и в Move пропишите нужное расширение. Доберусь до 7Z, приведу решение и с ним (я его ключи не знаю), это совершенно не принципиально.
В первом решении 7Z не прокатит, там нет ключа, аналогичного -tn1d

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 13-07-2011 в 17:02.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:53, 13-07-2011 | #5