Любой язык - [решено] Архивирование файлов с добавлением в архив

Ответить
Аватара пользователя
igor.kinma

Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение igor.kinma »

Добрый день. Помогите пожалуйста решить вот какую задачу. Есть файловый сервер. Хотелось бы сделать задачу автоматического архивирования файлов с добавлением в архив новых (измененных) файлов.



Пример: Есть папка "Документы" В ней лежат файлы 1 и 2. В 22:00 должен создаться архив Документы.rar, на следующий день в папке документы сохранили файл 3 и изменили файл 2. В 22:00 существующий архив должен дополниться файлом 3 и измененным фалом 2.



Можно вообще так сделать или нет? (мне кажется что нет, но лучше спросить)



Как Вариант создавать новый архив и удалять старый, так сейчас и настроено. Но архивирование начинает занимать много времени так как файлы растут.



Заранее спасибо!
Аватара пользователя
Elven

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение Elven »

пока так



Код:

Код: Выделить всё

rar.exe a -ac -ao документы.rar файлы\для\архивации\

вообще лучше брать список ключей и искать те, которые нужны.



Код:

Код: Выделить всё

rar.exe /?
Аватара пользователя
megaloman

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение megaloman »

Код:

Код: Выделить всё

"C:\Program Files\7-Zip\7z.exe" u Z:\Box_Out\backup Z:\Box_In\*.*

либо

Код:

Код: Выделить всё

"C:\Program Files\7-Zip\7zG.exe" u Z:\Box_Out\backup Z:\Box_In\*.*

В папке с установленным архиватором 7z есть справочный файл "C:\Program Files\7-Zip\7-zip.chm"

Читайте команды и ключи. Настраивайте архивацию "под себя".

Кстати, аналогичная команда u есть и у RAR.

Код:

Код: Выделить всё

"C:\Program Files\WinRAR\Rar.exe" u Z:\Box_Out\backup Z:\Box_In\*.*
"C:\Program Files\WinRAR\WinRar.exe" u Z:\Box_Out\backup Z:\Box_In\*.*

Если запустить Winrar.exe, то в графическом интерфейсе можно прочитать подробную справку об использовании архиватора.



Использование RAR с таким набором команд/ключей поставленную задачу не решает

[spoiler]Цитата Elven:[/spoiler]



rar.exe a -ac -ao документы.rar файлы\для\архивации\
Любой язык - [решено] Архивирование файлов с добавлением в архив










ИМХО Вызов архиватора нужно прописать в планировщике заданий.
Аватара пользователя
igor.kinma

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение igor.kinma »

Скажите я правильно понял нужно использовать команду:





код

[spoiler]C:\Program Files\WinRAR\Rar.exe" u Z:\Box_Out\backup Z:\Box_In\*.*[/spoiler]






C:\Program Files\WinRAR\Rar.exe - путь к программе WinRar



Z:\Box_Out\backup - куда архивировать



Z:\Box_In\*.* - что архивировать



Сейчас попробовал все работает как нужно, но есть одна проблема. У меня в пути присутствуют русские названия папок.



и я получаю это:

Невозможно создать D:\ЄхёЄ\рЁїшт.rar

Системе не удается найти указанный путь.



Можно как то сделать с русскими именами папок или придется все переименовывать?



Сделал так:





мой код

[spoiler]chcp 1251 >nul



"C:\Program Files\WinRAR\Rar.exe" u "D:\Тест\архив" "D:\Тест\файлы\*.*"



pause[/spoiler]






В командной строке все равно пишет ломанные буквы но архив делается. Но заметил что архивируются только файлы находящиеся в папке D:\Тест\файлы. Папки не архивируются и архив создается не в папке D:\Тест\архив а в папке D:\Тест
Аватара пользователя
Iska

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение Iska »

igor.kinma, просто сохраните пакетный файл в кодировке OEM/866.
Аватара пользователя
igor.kinma

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение igor.kinma »

Простите но ткните носом что я делаю не так.



Сделал следующее:



1) открыл Notepad++ ввел "C:\Program Files\WinRAR\Rar.exe" u "D:\Тест\архив\backup.rar" "D:\Тест\файлы\*.*"

2) нажал Кодировки - Кодировки - Кириллица - OEM 866 получил "C:\Program Files\WinRAR\Rar.exe" u "D:\╥хёЄ\рЁїшт\backup.rar" "D:\╥хёЄ\Їрщы√\*.*"

3) сохранить как - имя файла arhiv тип файла bat.

4) запускаю - получаю





ошибка

[spoiler]D:\Тест>"C:\Program Files\WinRAR\Rar.exe" u "D:\╥хёЄ\рЁїшт\backup.rar" "D:\╥хёЄ\

Їрщы√\*.*"



RAR 5.11 Авторские права (c) 1993-2014 Александр Рошал 27 Aug 2014

Зарегистрировано: RARLab



Невозможно создать D:\╥хёЄ\рЁїшт\backup.rar

Системе не удается найти указанный путь.

Работа программы прервана



D:\Тест>pause

Для продолжения нажмите любую клавишу . . .[/spoiler]
Аватара пользователя
megaloman

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение megaloman »

igor.kinma,


Цитата igor.kinma:



Скажите я правильно понял нужно использовать команду:
Любой язык - [решено] Архивирование файлов с добавлением в архив




Всё верно. Единственное, если в указанных именах есть пробелы, то пути надо обязательно указывать в кавычках

Код:

Код: Выделить всё

"C:\Program Files\WinRAR\Rar.exe" u "Z:\Box Out\backup.rar" "Z:\Box In\*.*"

Если в пути присутствуют русские буквы и если Вы запускаете архиватор из bat/cmd-файла, то его обязательно надо сохранить в 866 кодировке (DOS).
Цитата igor.kinma:



"C:\Program Files\WinRAR\Rar.exe" u "D:\Тест\архив" "D:\Тест\файлы\*.*"

... Но заметил что архивируются только файлы находящиеся в папке D:\Тест\файлы. Папки не архивируются и архив создается не в папке D:\Тест\архив а в папке D:\Тест
Любой язык - [решено] Архивирование файлов с добавлением в архив




Что попросили, то и получили.

"D:\Тест\архив" - это имя архивного файла (по умолчанию он примет расширение .rar) Если надо создать архив в папке архив, то надо

"D:\Тест\архив\имя архива.rar"

Вы не писали, что в "D:\Тест\файлы\" содержит подпапки, которые тоже надо архивировать. Читайте описание! Если архивировать с папками, надо применить ключ -r



Код:

Код: Выделить всё

"C:\Program Files\WinRAR\Rar.exe" u -r "Z:\Box Out\backup.rar" "Z:\Box In\*.*"

Вы запутались в кодировках. Пришлите Ваш файл.
Аватара пользователя
igor.kinma

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение igor.kinma »

Цитата igor.kinma:



Сделал следующее:

1) открыл Notepad++ ввел "C:\Program Files\WinRAR\Rar.exe" u "D:\Тест\архив\backup.rar" "D:\Тест\файлы\*.*"

2) нажал Кодировки - Кодировки - Кириллица - OEM 866 получил "C:\Program Files\WinRAR\Rar.exe" u "D:\╥хёЄ\рЁїшт\backup.rar" "D:\╥хёЄ\Їрщы√\*.*"

3) сохранить как - имя файла arhiv тип файла bat.

4) запускаю - получаю
Любой язык - [решено] Архивирование файлов с добавлением в архив




А надо было:


Цитата:



1) открыл Notepad++

2) нажал Кодировки - Кодировки - Кириллица - OEM 866

2а) ввел "C:\Program Files\WinRAR\Rar.exe" u "D:\Тест\архив\backup.rar" "D:\Тест\файлы\*.*"





Далее по списку.
Аватара пользователя
igor.kinma

Re: Любой язык - [решено] Архивирование файлов с добавлением в архив

Сообщение igor.kinma »

Все понял огромное Вам спасибо. Еще раз с Новым 2018 годом. Успехов Вам и Вашим близким и крепкого здоровья!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»