Ru-Board.club
← Вернуться в раздел «Программы»

» 7-Zip / 7z (часть 2)

Автор: SSchumi
Дата сообщения: 17.02.2016 09:35
VictorVG2
не совсем тебя понял. Параметры командной строки 7z?
Скрипты я буду свои править, потому что для rar мне уже не понадобится эта вся чепуха со списком исключений (у него есть ключ -E[+]<attr>).
Автор: VictorVG2
Дата сообщения: 17.02.2016 14:59
SSchumi

Да, я про них. Их внести в скрипт с выбором метки от передаваемого скрипту параметра. Чего возиться с кучей ключей? Штука типа такой:

Цитата:
@echo off
rem
rem parameters: %1 - version, %2 - mode = d - download only, = g - download and rename, = r - rename only
rem
@if /i %1==help (echo parameters: %1 - version, %2 - mode = d - download only, = g - download and rename, = r - rename only&pause&goto :eof)
@if /i %2==d (wget http://mozilla.github.io/pdf.js/extensions/firefox/pdf.js.xpi&goto :eof)
@if /i %2==g (wget http://mozilla.github.io/pdf.js/extensions/firefox/pdf.js.xpi&ren pdf.js.xpi pdf_viewer-%1-sm+an+fx.xpi&goto :eof)
@if /i %2==r (if exist pdf.js.xpi (@ren pdf.js.xpi pdf_viewer-%1-sm+an+fx.xpi&goto :eof))
:eof

и голова не болит.
Автор: mbrz
Дата сообщения: 17.02.2016 23:04
del
Автор: Skif_off
Дата сообщения: 26.02.2016 02:53
Подскажите, пожалуйста, где можно посмотреть все сообщения об ошибках при тестировании файлов, которые сабж выводит в консоль? (Подозреваю, в одном месте их нет, есть только по форматам.)
Автор: VictorVG2
Дата сообщения: 26.02.2016 12:25
Skif_off

Я бы просто перенаправил вывод файл, а там бы разбирался с логом. По крайней мере мне так проще.
Автор: Skif_off
Дата сообщения: 26.02.2016 13:15
VictorVG2
Так и делал но нет, не проще: тест сообщения/предупреждения/ошибки несколько отличается для разных форматов, как и вывод инфо о файле с проблемой (имя, формат, прочее). Хочу вытаскивать сообщение об ошибке/предупреждение и полное имя файла, могу, конечно, вооружившись Hex-редактором, поперенаправлять, но и в шапке есть список поддерживаемых форматов и он не мал.
Всё-таки Hex-редактор - попроще, наверное.
Автор: VictorVG2
Дата сообщения: 26.02.2016 13:39
Skif_off

Ну или так, или что-то типа отладчика способное читать вывод прямо из памяти задачи и сортировать его пусть и весьма приблизительно.
Автор: Skif_off
Дата сообщения: 26.02.2016 14:38
VictorVG2
Те же яйца, только вид сбоку: всё равно нужно скормить программе повреждённый файл(ы), а форматов немеряно.
Автор: VictorVG2
Дата сообщения: 26.02.2016 18:04
Skif_off

Ну, есть такое, а коли известны признаки строки сообщения об ошибке то почему бы тут что-то типа греп/файнд не задействовать и пусть они перебирают вывод делая стойку по событию? Буквально пару дней тому назад аналогичная задача всплывала в теме по рар-у - найти в выводе битые архивы...
Автор: Ksanderash
Дата сообщения: 02.03.2016 00:44
А никто не сравнивал сжатие последних версий с 9.20, к примеру?

К чему говорю, папка запакованная 9.20 - 135 Мб, а последним 15.14 - 195 Мб. LZMA, все параметры абсолютно те же указываю, контент - распакованный инсталлятор PowerChute Business Edition v9.2
Автор: Pasha_ZZZ
Дата сообщения: 02.03.2016 00:51
Ksanderash
Для корректного сравнения в версиях, начиная с 15.06, надо добавлять ключ -mqs
Автор: Ksanderash
Дата сообщения: 02.03.2016 01:25
Сенькс, я бы долго искал. Сжатие выправилось ) Хорошо хоть поле Параметры сохраняет введенное.
Автор: SSchumi
Дата сообщения: 02.03.2016 10:59
Нет, никогда (никого не хочу обидеть) он не приблизится в этому бячному, проприетарному винрару.
Ну как так. Ставлю создать архив, разбивая на части, пакуется, в результате получается всего одна часть (меньше заданного). В итоге создаётся файл, оканчивающийся на .001.
А посмотреть, что только одна часть и переименовать в нормальный .7z?
Автор: VictorVG2
Дата сообщения: 02.03.2016 15:43
SSchumi

Значит хватило. Скрипт по Errorlevel.
Автор: Lichtenshtein
Дата сообщения: 05.03.2016 20:27
Есть две папки, в каждой по несколько сотен архивов. Имена файлов в обеих папках совпадают, но содержимое - разное. Как автоматизировать и объединить архивы из одной папки с архивами в другой без перезаписи содержимого самих архивов, если имена файлов в них совпадают?
Автор: Inoz2000
Дата сообщения: 05.03.2016 23:45
7-зип тут каким боком? Задачи пакетной обработки файлов решайте в другой теме.
Автор: Lichtenshtein
Дата сообщения: 06.03.2016 11:14
Inoz2000

Цитата:
7-зип тут каким боком?

В смысле? Речь про 7zip архивы. Или 7zip не поддерживает объединение архивов?
В какой теме тогда можно помощь по моему вопросу получить?
Автор: VictorVG2
Дата сообщения: 06.03.2016 11:22
Lichtenshtein

for ... in...
if not exist %tmp%\wk1 (md %tmp%\wk1)&7z x <arc1>&7z u -sdel <arc2> %tmp%\wk1&rd /s/q %tmp%\wk1
do

примерно так, дальше читайте справки CMD и 7-Zip.


Автор: Lichtenshtein
Дата сообщения: 06.03.2016 11:28
VictorVG2
Спасибо, буду смотреть.
Автор: Fresh96
Дата сообщения: 14.03.2016 12:04
Здравствуйте. Подскажите как из командной строки создать(обновить) архив только если файлы на диске и в архиве различаются.
Вот это работает, но каждый раз изменяет архив (дата изменения):

7z.exe u -tzip -ssw -mx7 D:\ProtocolPDF.zip D:\FolderPDF\*.pdf

Какие ключи применить, чтобы если pdf файлы и их количество(не стало их больше) не изменились, то и с архивом никаких действий не производилось?

Спасибо.
Автор: GORA2
Дата сообщения: 14.03.2016 13:07
Fresh96

Цитата:
Какие ключи применить

Почитайте про ключ -u (не путать с одноименной командой)
Автор: Fresh96
Дата сообщения: 14.03.2016 15:35

Цитата:
Почитайте про ключ -u


Спасибо. Но так и не могу заставить это заработать:

7z.exe u -tzip -ssw -mx7 D:\ProtocolPDF.zip -u- -ur2z0 D:\FolderPDF\*.pdf

Пробовал различные комбинации этих параметров (и так uq0r2x0z0w2), но 7-zip(9.22) или говорит, что команда некорректна или Everything is Ok, но архив не обновляется и даже не создается.

Заметил, что если записать так (без пробела между .zip и -u-):
7z.exe u -tzip -ssw -mx7 D:\ProtocolPDF.zip-u- -uq0r2x0z0w2 D:\FolderPDF\*.pdf
тогда все работает, но имя архива такое: ProtocolPDF.zip-u- .

Как исправить, подскажите?

P.S. исправил. работает
7z.exe u -tzip -ssw -mx7 D:\ProtocolPDF.zip -uq0r2x0z0w2 D:\FolderPDF\*.pdf

только при такой комбинации, если запустить cmd первый раз то, архив создается, а если запустить второй раз то все файлы из архива удаляются (размер 1кб), затем, если снова запустить то архив опять создается как нужно. Похоже, виноват параметр z0. Как же быть?
Автор: The_Immortal
Дата сообщения: 18.03.2016 01:38
Друзья, подскажите, пожалуйста, каким образом проверить целостность doc-файлов в каталоге и подкаталогах этого каталога? Пробую так:

Код: 7z t c:\DirToCheck *.doc -r
Автор: hErAx
Дата сообщения: 18.03.2016 02:02
The_Immortal
и какие результаты проверки, интересно знать?
а так, команда t - для проверки архивов и файлов в архивах
Автор: The_Immortal
Дата сообщения: 18.03.2016 02:09
hErAx,
Цитата:
и какие результаты проверки, интересно знать?
Если Вы имели в виду общий результат, то при выполнении команды
Код: 7z t c:\DirToCheck\
Автор: hErAx
Дата сообщения: 18.03.2016 02:23
The_Immortal
doc - особенный случай (мягко говоря)

for /f "delims=" %a in ('dir c:\DirToCheck\*.doc /b /s /a-d') do 7z t "%a"

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

02:36 - добавил кавычки
Автор: The_Immortal
Дата сообщения: 18.03.2016 02:42
hErAx, благодарю, но таким образом мне не будет известен тот самый итог, который делает 7z:
Код: Archives: 1834
OK archives: 1557
Can't open as archive: 50
Archives with Errors: 53
Archives with Warnings: 174

Warnings: 176

Open Errors: 12

Sub items Errors: 135
Автор: VictorVG2
Дата сообщения: 18.03.2016 03:59
The_Immortal

А добавить хвост:

for /f "delims=" %a in ('dir c:\DirToCheck\*.doc /b /s /a-d') do 7z t "%a >> logfile.txt"

ну а после разбираться с простынёй.

Добавлено:
docx/xlsx/pptx это банальные XML + картинки в Zip-контейнере, а как .doc от Word 5,x - 2010 архиватором проверять - от енто антиресно.
Автор: The_Immortal
Дата сообщения: 18.03.2016 04:13
VictorVG2
Цитата:
ну а после разбираться с простынёй
Эх... По-моему, если 7zip тестирует содержимое каталогов, то добавить фильтрацию по расширению файлов совсем не сложно

Цитата:
а как .doc от Word 5,x - 2010 архиватором проверять - от енто антиресно.
А чего тамась антиресного? Если doc будет поврежден, то архиватор не воспримет его как архив. Иначе - успешно распакуеть. Правда, что там будет внутри мне неведомо, но для анализа общей целостности это и не столь важно. Или Вы не целостность имели в виду?
Автор: The_Immortal
Дата сообщения: 18.03.2016 10:47
А вот и ларчик:
Код: 7z t -an -air!c:\DirToCheck\*.doc

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135

Предыдущая тема: RDM+, TSMobiles и VNC+


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.