Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Ищу помощи: CMD 7zip - разно-уровневая архивация, по выбранным расширениям, для много

Ответить
Настройки темы
CMD/BAT - Ищу помощи: CMD 7zip - разно-уровневая архивация, по выбранным расширениям, для много

Пользователь


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

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


Здравствуйте.

Возможно, моя логика не верна - мозг спекся, от множества задач.
Поэтому ищу совета, помощи:




CMD БЕКАПЕР:
Архивация посредством 7zip,
С раздельным сжатием:
- 1. архивизация папок, исключая по расширению файлы что плохо жмутся (jpg, png, zip, mp3...)
- 2. далее апдейт созданного архива, добавляя файлы исключенные ранее, но с нулевым сжатием в 7zip
= уменьшение времени на сжатие

пример:
7za.exe a -v1000m -ssw -bsp2 -mx=9 -xr@list_exclusions.lst "C:\tmp\test.7z" "C:\tmp\src\"
7za.exe u -v1000m -ssw -bsp2 -mx0 -i@list_exclusions.lst "C:\tmp\test.7z" "C:\tmp\src\"

результат:
работает, если создавать однотомный архив
Но апдейт (7za.exe u) многотомных архивов (-v1000m) - оказался не возможен, средствами 7zip...



ВОЗНИКЛА ЗАДАЧА:
Сохранив алгоритм раздельного сжатия для разных расширений,
Создавать многотомные архивы.
Многотомные – т.к. на облачных хранилищах есть ограничение на размер файла

Ищу решение обхода в 7zip, или ошибку в приведённом примере выше




ПРИДУМАННЫЕ ВАРИАНТЫ:


v 1.0
Не придуманное, упущенное по глупости, по незнанию...




v 2.0
Раз "многотомности нет" = делаем отдельные архивы 0
Делим архивируемую папку на -сжатое и -не сжатое.

получаем:
test_papka__A_compress.7z.000 -сжатое
test_papka__A_compress.7z.001 -сжатое
...
test_papka__B_NOcompress.7z.000 -не сжатое (jpg, png, zip, mp3...)
test_papka__B_NOcompress.7z.001 -не сжатое (jpg, png, zip, mp3...)
...


Пример: -ir!%bdir%\*.jpg -ir!%bdir%\*.gif -ir!%bdir%\*.mov
Итоги: ХЗ - тк длинная строчка получится (у меня 40 исключаемых расширений)… Зато всего 2-3 строки
v 2.0 - 1
Код: Выделить весь код
set bdir=C:\tmp\src
7za.exe a   -v1000m -ssw -bsp2  -mx=9   -xr@list_exclusions.lst     "C:\tmp\test_papka__A_compress.7z"   	"%bdir%\"
7za.exe a   -v1000m -ssw -bsp2  -mx=0                               "C:\tmp\test_papka__B_NOcompress.7z" 	-ir!%bdir%\*.jpg -ir!%bdir%\*.gif -ir!%bdir%\*.mov




v 3.0
А если добавиться функция: архивация 7zip по списку файлов: @"list_for_bkup.lst"
v 3.0 - 1
Код: Выделить весь код
7za.exe a -v1000m -ssw -bsp2  -mx=9   -xr@list_exclusions.lst     "C:\tmp\test_papka__A_compress.7z"   @"list_for_bkup.lst"
7za.exe u -v1000m -ssw -bsp2  -mx0    -i@list_exclusions.lst      "C:\tmp\test_papka__B_NOcompress.7z" @"list_for_bkup.lst"

Тогда, способы созданные выше, как понимаю уже не рабочие.. придется что-то примеров ниже:
Но к сожалению, знаний в циклах/в данных примерах у меня не много...
- полноценно реализовать данный вариант самостоятельно не могу =(
* ниже приведены просто примеры, явно не рабочие
v 3.0 - 2
Код: Выделить весь код
set bdir=C:\tmp\src
FOR /R %%F IN (*.jpg, *.gif, *.mov) DO (7za.exe a -mx=0 "%bdir%\test_papka__B_NOcompress.7z" @"list_for_bkup.lst" %%f)
v 3.0 - 3
Код: Выделить весь код
set bdir=C:\tmp\src
for %%a in (jpg, gif, mov) do (
    for /f "delims=" %%b In ('dir /b /s /a-d "%bdir%\*.%%a" 2^>nul') do (
        "7za.exe" a -mx=0 "%bdir%\test_papka__B_NOcompress.7z" @"list_for_bkup.lst" "%%~b"
    ))




v 4.0
Еще можно брать файлы+расширение на архивацию директории, определяемые списком.
Те перед каждой архивацией, каждую папку, сканировать на расширение и выводить в файл:
* Всё-таки наверно(?) правильней переводить в цикл...
** Опять же, как то реализовать своими силами - не знаю - не хватает ума, знаний

v 4.0 - 1
Код: Выделить весь код
set bdir= C:\tmp\src\
goto listcreate
7z a -ssw -bsp2 -v1000m -mx=9	 -xr@list_exclusions.lst        "C:\tmp\test_papka__A_compress.7z"   	"%bdir%\"
7z a -ssw -bsp2 -v1000m -mx0 	                                "C:\tmp\test_papka__B_NOcompress.7z" 	@"list_scan_B.lst"

    :listcreate
        dir /b %bdir%\*.jpg >> list_scan_B.lst
        dir /b %bdir%\*.gif >> list_scan_B.lst
        …
        dir /b %bdir%\*.mov >> list_scan_B.lst
    goto eof




v 5.0
test_A_compress.7z - архивируем исключив по -xr@list_exclusions.lst (jpg, png, zip, mp3...)
test_B_nocompress.7z - архивируем исключив по -xr@list_exclusions_all.lst все(!) существующие в мире расширений, кроме(!) небольшой группы вырезанные из данного списка: jpg, png, zip, mp3...

= две строки и все работает
= интересное решение

НО:
- где взять список с всеми-всеми расширениями? (искал, находил неполные)
- да, вроде, если, какое-то расширение будет пропущено в списке, то скорее всего файл с ним не слишком большой (крупные-известны)
- а заархивируется-то точно,
- упущенный же размер, упущенных расширений (не сжаты) - ну что же делать... - зато 2 строки кода


----------------------------------------
Как-то так...
Приношу извинение что пост-вопрос стал большим, старался сократить.

Помогите.

Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!

Отправлено: 06:16, 12-01-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Освойте Cobian Backup.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 09:44, 12-01-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


Цитата DJ Mogarych:
Освойте Cobian Backup. »
Благодарю
Еще в 2004-2006х его использовал... а может и раньше
На данный момент понимаю что для меня он не столь гибок чем bat/cmd

Отправлено: 11:12, 12-01-2021 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


bat/cmd, может, и более гибок, но не для вас, иначе вы не обращались бы сюда.

В Cobian Backup можно создать 2 задания - одно будет бэкапить несжимаемое, а другое - сжимаемое. И делить на части он умеет.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 11:17, 12-01-2021 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Ищу помощи: CMD 7zip - разно-уровневая архивация, по выбранным расширениям, для много

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Не пишется лог-файл по forfiles. Ищу помощи и совета. blacks2 Скриптовые языки администрирования Windows 3 29-10-2020 06:37
CMD/BAT - BAT Архивация 7zip c именем архивируемого файла mych_man Скриптовые языки администрирования Windows 5 12-02-2016 13:28
Архивация файлов с помощью 7zip, имена которых содержат пробел MONaH Rasta AutoIt 7 12-11-2012 13:36
CMD/BAT - Архивация логов с датой по месяцам (7zip) ezmax Скриптовые языки администрирования Windows 0 16-08-2012 10:00
BSOD - [решено] Прошу помощи по сценарию (kdfe.cmd) konstantinych Устранение критических ошибок Windows 17 13-03-2010 13:11




 
Переход