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

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

Автор: DeisGood
Дата сообщения: 11.02.2010 12:37
Подскажите, пожалуйста, возможно ли с помощью ключей архиватора, непосредственно перед распаковкой проверить: достаточно ли свободного места на диске для распаковки?
Ну или на крайний случай посмотреть сколько займет места архив в распакованном виде.
Автор: Verwolk
Дата сообщения: 11.02.2010 12:52
DeisGood

Цитата:
Ну или на крайний случай посмотреть сколько займет места архив в распакованном виде.


Автор: DeisGood
Дата сообщения: 11.02.2010 13:01
Это понятно, но такой вариант не подходит,
дело в том что распаковка ведется через командную строку согласно файла сценария, предугадать размер архива не возможно, как впрочем и свободного места на которое будет производиться распаковка. Пользователь видит всего лишь панель прогресс-бара. Если место для распаковки недостаточно, никаких сообщений не выводиться, прогресс-бар просто зависает и все...
Автор: sabio
Дата сообщения: 11.02.2010 13:48
DeisGood
команда l выводит эту информацию в последней строке:

Цитата:

> 7za l archive.7z

7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03

Listing archive: archive.7z

Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
...
------------------- ----- ------------ ------------ ------------------------
14243 10686 2 files, 0 folders


добраться до неё в батнике можно, например, с помощью for


ещё один вариант - команда t:

Цитата:

> 7za t archive.7z

7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03

Processing archive: archive.7z

Testing ...
...

Everything is Ok

Files: 2
Size: 14243
Compressed: 10940


но на больших архивах тестирование, наверное, будет медленнее простого листинга содержимого
Автор: DeisGood
Дата сообщения: 11.02.2010 14:01
sabio
я не думаю что архивы будут большими - будут использоваться патчи для установки на флэш, спасибо, за помощь.
Автор: fff222fffy1
Дата сообщения: 14.02.2010 11:34
Подскажите пожалуйста, можно ли работая в режиме командной строки получить листинг файлов в архиве в текстовый файл?
Попробовал различные вариации с с командой l, ничего не вышло.
Автор: sabio
Дата сообщения: 14.02.2010 12:09
fff222fffy1
просто перенаправить вывод

Код:
7za l archive.7z >filelist.txt
Автор: fff222fffy1
Дата сообщения: 14.02.2010 12:29
Вот я чайник
Чуял же, что здесь что-то простое.
Спасибо.
Автор: lorents
Дата сообщения: 16.02.2010 22:37
Как можно узнать метод сжатия и размер словаря архива *.zip?
Автор: Martik
Дата сообщения: 16.02.2010 23:21
Странное дело:
Есть Фар 1.70 build 2087, в MultiArc.dll настроена работа с 7z.
В качестве консольного архиватора используется 7z.exe 7z.dll из обычного дистрибутива 7z. Так вот, есть проблема:
При 7z версии 4.65 в фаре можно спокойно войти внутрь архивов, работать с ними, и т.д.
При 7z версии 9.10 в фаре при входе в архив видно только "Name" и все....
Можно как нить решить эту проблему для версии 9.10?
Автор: sabio
Дата сообщения: 16.02.2010 23:25
lorents
метод сжатия выводит команда l:

Код:
> 7za l archive.7z x

7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03

Listing archive: archive.7z

Method = LZMA BCJ
Solid = +
Blocks = 2
Physical Size = 3296706
Headers Size = 4333

Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
------------------- ----- ------------ ------------ ------------------------
0 files, 0 folders
Автор: Martik
Дата сообщения: 16.02.2010 23:36
sabio

Цитата:
видимо, скачать с сайта 7-zip обновлённую "добавку" для custom.ini в MultiArc - 7z910_extra.7z
судя по всему, 9.10 выводит данные на консоль в другом формате и настройки от 4.65 в custom.ini Multi-Arc-а уже не подходят

Добавка для custom.ini была взята, как раз из 7z910_extra.7z

Попробовал взять 7za.exe версии 9.10 - тот же результат
берем 7z от 4.65 - вс ок.

Смех смехом - пытаюсь счас я открыть именно 7z910_extra.7z в качестве тестового...

Добавлено:
Проблема разрешилась!
В секции Custom.ini

Цитата:

[7z]
TypeName=7z
ID=37 7A BC AF 27 1C
IDPos=
IDOnly=1
Extension=7z
List=7z l -- %%AQ
Start="^--"
End="^--"

Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnn......."
Extract=7z x {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
ExtractWithoutPath=7z e {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
Test=7z t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN
Delete=7z d {-p%%P} -r0 -ms=off -scsDOS -- %%A @%%LQMN
Add=7z a {-p%%P} -r0 -t7z {%%S} -scsDOS -- %%A @%%LQMN
AddRecurse=7z a {-p%%P} -r0 -t7z {%%S} -scsDOS -- %%A @%%LQMN
AllFilesMask="*"


в Версии 9.10 при команде 7z l arc.7z выдается следующее:

Цитата:
7-Zip (A) 9.10 beta Copyright (c) 1999-2009 Igor Pavlov 2009-12-22

Listing archive: 7z910_extra.7z

----
Path = 7z910_extra.7z
Type = 7z
Method = LZMA BCJ2
Solid = +
Blocks = 2
Physical Size = 432698
Headers Size = 618

Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------

а в версии 4.65 этих "----" НЕТ!

для решения проблемы меняем в Custom.ini: ( с 2х черточек на 5 )
Start="^-----"
End="^-----"


Тогда можно спокойно входить в архив. (можно добавить в шапку )
Автор: lorents
Дата сообщения: 17.02.2010 00:09
sabio

Цитата:
метод сжатия выводит команда l:

меня интересует архив *.zip, а не *.7z
к сожалению эта команда не дает данные про *.zip
Автор: sabio
Дата сообщения: 17.02.2010 00:16
lorents
так а в .zip - то и методов особо нет
ну да, там для каждого файла выбирается автоматически что-то типа Store / Deflate - тебе это надо?
если не секрет, зачем?


Martik
ага, вот и я хотел уже про эти минусики тебе писать
на самом деле, там достаточно хотя бы в Start написать не меньше 5 минусов, и всё будет работать

странно, что у 7-zip в новой добавке к custom.ini это не исправлено..
кстати, в свежих сборках Far custom.ini уже сразу с поддержкой 7z и сразу правильный
Автор: Victor_VG
Дата сообщения: 17.02.2010 01:37
sabio

На SVN этих изменений нет. Этот [more=кусок как раз с SVN 4277][7z]
TypeName=7z
ID=37 7A BC AF 27 1C
IDPos=
IDOnly=1
Extension=7z
List=7z l -- %%AQ
Start="^-----"
End="^--"
Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract=7z x {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
ExtractWithoutPath=7z e {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
Test=7z t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN
Delete=7z d {-p%%P} -r0 -ms=off -scsDOS -- %%A @%%LQMN
Add=7z a {-p%%P} -r0 -t7z {%%S} -scsDOS -- %%A @%%LQMN
AddRecurse=7z a {-p%%P} -r0 -t7z {%%S} -scsDOS -- %%A @%%LQMN
AllFilesMask="*"

[rpm]
TypeName=rpm
ID=ED AB EE DB
IDPos=
IDOnly=0
Extension=rpm
List=7z l -- %%AQ
Start="^-----"
End="^--"
Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract=7z x {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
ExtractWithoutPath=7z e {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
Test=7z t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN
AllFilesMask="*"

[cpio]
TypeName=cpio
ID=
IDPos=
IDOnly=0
Extension=cpio
List=7z l -- %%AQ
Start="^-----"
End="^--"
Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract=7z x {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
ExtractWithoutPath=7z e {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
Test=7z t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN
AllFilesMask="*"

[deb]
TypeName=deb
ID=
IDPos=
IDOnly=0
Extension=deb
List=7z l -- %%AQ
Start="^-----"
End="^--"
Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract=7z x {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
ExtractWithoutPath=7z e {-p%%P} -r0 -y -scsDOS -- %%A @%%LQMN
Test=7z t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN
AllFilesMask="*"[/more] так что, сам видишь, случайно этот момент ребята не заметили. А за подсказку спасибо! У меня просто 7zipAlt стоит+MultiArc и такой проблемы не возникало. Буду знать.
Автор: lorents
Дата сообщения: 17.02.2010 09:03
sabio

Цитата:
так а в .zip - то и методов особо нет
ну да, там для каждого файла выбирается автоматически что-то типа Store / Deflate - тебе это надо?
если не секрет, зачем?

хочу написать батник для оптимизации файлов MS Office 2007 (если кто не знает то эти файлы - zip-архивы), и вот хотел бы знать какой метод там используется точно, по моему это Deflate
Автор: Bulat_Ziganshin
Дата сообщения: 17.02.2010 09:12
lorents
7z -slt l a.zip
Автор: egor23
Дата сообщения: 17.02.2010 09:51
lorents

Цитата:
хочу написать батник для оптимизации файлов MS Office 2007 (если кто не знает то эти файлы - zip-архивы), и вот хотел бы знать какой метод там используется точно, по моему это Deflate

Deflate (Сверхбыстрое)
версия упаковщика 4.5
версия для распаковки 2.0
смотрел этим http://wincmd.ru/plugring/archview.html
чем-то ещё можно смотреть, но уже не помню.
Автор: lorents
Дата сообщения: 17.02.2010 18:57
Bulat_Ziganshin, egor23
спасибо!
Автор: Victor_VG
Дата сообщения: 17.02.2010 22:03
Bulat_Ziganshin

Большая просьба закоммитить на SVN 7-Zip изменения в 7z910_extra.7z -> ./FAR/7zToFar.ini ошибка в работе с форматами 7z/cpio/dib/rpm для плагина Far Manager MultiArc идёт из этого места:

Цитата:
[7z]

Start="^--"
End="^--"


[rpm]

Start="^--"
End="^--"


[cpio]

Start="^--"
End="^--"


[deb]

Start="^--"
End="^--"

ошибочные места в секциях я выделил жирным шрифтом. Там надо указать вместо "^--" правильное значение "^------" и всё будет работать. В теме по Far Manager я отпсался со ссылкой на этот момент, и выложил там же баг-фикс для MultiArc заодно обеспечивающий и поддержку Inno Setup версий до 5.3.7 включительно.

Автор: lorents
Дата сообщения: 20.02.2010 16:32
у меня есть некий файл
Подскажите, пожалуйста, как можно проверить через 7-zip, является ли данный файл архивом *.zip, через командную строку, и если да, то распаковать?
Автор: sabio
Дата сообщения: 20.02.2010 17:17
lorents
так а просто запустить распаковку: 7z x somefile.dat ?
по идее, если не архив, то он так и скажет, ничего не распаковав

или это надо в каком-нть скрипте делать, автоматом?
Автор: lorents
Дата сообщения: 20.02.2010 17:29
sabio
Проблема в том, что меня надо распаковывать только архивы *.zip
Автор: sabio
Дата сообщения: 20.02.2010 17:49
lorents
если заглянуть внутрь файла (F3 в Far), то все .zip-архивы содержат в начале сигнатуру "PK" (с sfx всё сложнее)

кроме того, команда 7za t somefile.dat выводит тип архива, ну или 7za l somefile.dat xxx
(xxx - это какое-нть несуществующее имя файла, чтобы 7-zip не принялся выводить содержимое архива)
Автор: lorents
Дата сообщения: 20.02.2010 18:04
sabio

Цитата:
кроме того, команда 7za t somefile.dat выводит тип архива, ну или 7za l somefile.dat xxx

а как это сделать автоматически, если это архив zip, то распаковать?
Автор: sabio
Дата сообщения: 20.02.2010 18:33
lorents
вместо 7-zip использовать (раз)архиватор, который только .zip и умеет распаковывать
взять, например, unzip.exe из UnxUtils
Автор: lorents
Дата сообщения: 20.02.2010 19:07

Цитата:
nxUtils

sabio

Цитата:
вместо 7-zip использовать (раз)архиватор, который только .zip и умеет распаковывать
взять, например, unzip.exe из UnxUtils

сейчас попробуем, спасибо
Автор: lorents
Дата сообщения: 21.02.2010 13:36
Подскажите, пожалуйста как можно запаковать пустые папки в архив zip, через командную строку?
Автор: sabio
Дата сообщения: 21.02.2010 13:44
lorents
а в чём проблема-то?

команда 7za a test.zip abc def отлично создаёт архив с двумя пустыми папками
Автор: lorents
Дата сообщения: 21.02.2010 14:01
sabio

Цитата:
а в чём проблема-то?

а использую следующую команду

Код: 7z.exe a -r -mm=Deflate -y -tzip -mpass=15 -mfb=258 -mx9 Zip\t001.zip .\Temp\* -x!Thumbs.db

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135

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


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