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

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

Автор: tigrr
Дата сообщения: 16.07.2015 12:04
Сорри, если плохо искал. А где 7-Zip хранит свои настройки?
Скажем, для быстрого копирования "любимых" настроек на другие ПК
Автор: addhaloka
Дата сообщения: 16.07.2015 12:11
tigrr 12:04 16-07-2015
Цитата:
А где 7-Zip хранит свои настройки?

В HKEY_CURRENT_USER\Software\7-zip.
Автор: GORA2
Дата сообщения: 16.07.2015 12:19
tigrr

Цитата:
для быстрого копирования "любимых" настроек на других ПК



Код: @Echo Off
SetLocal EnableDelayedExpansion
Set "ext=001 7z arj bz2 bzip2 cab cpio deb dmg fat gz gzip hfs iso lha lzh lzma ntfs rar rpm squashfs swm tar taz tbz tbz2 tgz tpz txz vhd wim xar xz z zip"
RD "tmp" /S /Q 2>Nul
MD "tmp" 2>Nul

(Echo Windows Registry Editor Version 5.00
Echo.
For %%a In (%ext%) Do (
    Reg Export "HKCR\.%%a" "tmp\%%a.reg" 2>Nul >Nul
    Find /i "7-Zip." "tmp\%%a.reg" 2>Nul >Nul &&(
        For /F "skip=2 tokens=*" %%i In ('Type "tmp\%%a.reg"') Do Echo %%i
        Echo.
    )
)
For %%a In (%ext%) Do (
    Reg Export "HKCR\7-Zip.%%a" "tmp\7-Zip.%%a.reg" 2>Nul >Nul
    Find /i "7-Zip." "tmp\7-Zip.%%a.reg" 2>Nul >Nul &&(
        For /F "skip=2 tokens=*" %%i In ('Type "tmp\7-Zip.%%a.reg"') Do Echo %%i
        Echo.
    )
)
Reg Export "HKCU\Software\7-Zip" "tmp\7-ZipOpt.reg" 2>Nul >Nul
rem For /F "skip=2 tokens=*" %%i In ('Type "tmp\7-ZipOpt.reg"') Do Echo %%i

Set flag=0
For /F "skip=2 tokens=*" %%i In ('Type "tmp\7-ZipOpt.reg"') Do (
    Set ti=%%i
    If Not !ti!==!ti:[HKEY_=! Echo.
    If Not !ti!==!ti:History=! Set flag=1
    If !flag!==1 (
        Set fi=%%i
        Set ffi=!fi:,\=!
        If !fi!==!ffi! Set flag=0
    ) Else Echo %%i
)
)>7zipArch.reg
rem RD "tmp" /S /Q 2>Nul
Pause
Автор: tigrr
Дата сообщения: 16.07.2015 12:22
addhaloka
Цитата:
В HKEY_CURRENT_USER\Software\7-zip

Благодарю!
Экспортируем ключик и потом лёгким движением руки...
Вот бы добавить в программу, как в WinRAR'е, кнопы "Импорт/Экспорт параметров из файла"...

GORA2
Тоже благодарю!
Автор: redelparolo
Дата сообщения: 19.07.2015 10:38
GORA2 Вы мой кумир, до чего же мне нравятся ваши продуманные до мелочей сценарии батников. Спасибо Вам большое, за ваши труды.
Автор: Skif_off
Дата сообщения: 20.07.2015 00:21
Если кому интересно, набросал файл подсветки синтаксиса конфигов модифицированных модулей SFX для AkelPad (прямая ссылка на coder-файл).

Подробнее здесь в добавленном, критика приветствуется.
Автор: Dart Vanya
Дата сообщения: 20.07.2015 09:25
Здравствуйте, помогите пожалуйста, замучился уже, все справку облазил и пергуглил.
Как в command line сделать так, чтобы файл записывался в субдиректории в архиве. Во так записывается в корень архива:

Цитата:
7z a -tzip archive.zip file.txt

А как записать в dir\subdir\ в архиве (директории в архиве уже имеются)?
Я знаю, что можно создать папки dir\subdir\, положить туда файл и записать в архив его так:

Цитата:
7z a -tzip archive.zip dir

Но это не то, ведь в GUI же записывает файл просто перетаскиванием в подпапку в архиве.
Автор: GORA2
Дата сообщения: 20.07.2015 10:09
Dart Vanya

Цитата:
можно создать папки dir\subdir\, положить туда файл и записать в архив

Так и сделайте, ни чего сложного в этом нет.
Цитата:
ведь в GUI же записывает файл просто перетаскиванием в подпапку в архиве

Вы ошибаетесь! GUI версия архиватора, это - 7zG.exe, а D&D поддерживается в 7zFM.exe, т.е. в Файловом Менеджере. ФМ по определению должен работать с файлами и папками, что он прекрасно и делает ибо он под это заточен.
Ну а 7z.exe и 7zG.exe имеют поменьше возможностей в этом плане.
Автор: Dart Vanya
Дата сообщения: 20.07.2015 10:14
GORA2
ясно, спасибо, думал я криворукий сильно и не могу найти в документации, а значит консольный не поддерживает, можно конечно углубляться и брать 7z.dll, писать под нее, но это слишком сложно для такого. Создам папочки лучше.

Добавлено:
О, а у винрара есть ключ пути внутри архива,

Цитата:
WinRAR a -apDOCS\ENG release readme.txt



Добавлено:
А нет, он опять только в gui версии поддерживается, в справке написано, что не работает в консольной
Автор: Alex1985
Дата сообщения: 21.07.2015 21:55
как с помощью мод. sfx модуля версии 1.5:
1) распаковать архив во временую папку
2) запустить run.cmd который находится в этом архиве
3) дождаться завершения работы run.cmd
4) удалить распакованные файл
5) удалить сам архив
?

конфиг
;!@Install@!UTF-8!
InstallPath="%TEMP%\\тест"
RunProgram="run.cmd"
SelfDelete="1"
;!@InstallEnd@!
распаковывает в папку где лежит архив (???). run.cmd не запускает и файлы не удаляет. сам архив удаляется.
что я делаю не так?
Автор: GORA2
Дата сообщения: 21.07.2015 22:03
Alex1985
1 удалить строку:
Код: InstallPath="%TEMP%\\тест"
Автор: Alex1985
Дата сообщения: 21.07.2015 22:13
GORA2
ну вроде ссылки на модуль в шапке есть, значит не нарушаю...

строку я тоже пробовал удалить, эффект одинаковый что с ней что без неё. распаковывается в папку где лежит архив.
Автор: addhaloka
Дата сообщения: 21.07.2015 22:47
Alex1985
Как то так:
Цитата:
;!@Install@!UTF-8!
InstallPath="%TEMP%\\test"
GUIMode="2"
OverwriteMode="0"
SelfDelete="1"
RunProgram="hidcon:run.cmd"
Delete="%TEMP%\\test"
;!@InstallEnd@!
?
Автор: Alex1985
Дата сообщения: 21.07.2015 22:52
всем спасибо, проблема решена. sfx модуль у меня был битый, поэтому и вёл себя так странно.
Автор: Victor_VG
Дата сообщения: 29.07.2015 15:56
sk9heaven

7zFM I == Информация.
Автор: GORA2
Дата сообщения: 29.07.2015 15:59

Цитата:
получилось более 130 мб

Это нужно умудриться...

Цитата:
ультра-256мб

добавьте: 7z, LZMA2, Непрерывный
Автор: Victor_VG
Дата сообщения: 29.07.2015 16:06
sk9heaven

NDP46-KB3045557-x86-x64-AllOS-ENU.exe - 62 Мб LZMA:29 BCJ2 SOLID
NDP46-KB3045557-x86-x64-AllOS-RUS.exe - 6861 Кб LZMA:26 BCJ2 SOLID
Автор: Victor_VG
Дата сообщения: 29.07.2015 20:03
sk9heaven

Вы информацию просили? Читайте доки или ничему не научитесь.
Автор: timsky
Дата сообщения: 30.07.2015 00:11
sk9heaven
Я тоже заинтересовался этим вопросом. Открыл хелп 7-zip и начал пробовать.
Q: Как узнать параметры сжатия?
A: Берешь FreeArc, например, у меня FreeArc 0.67 (March 15 2014). Открываешь в нем NDP46-KB3045557-x86-x64-AllOS-ENU.exe, смотришь инфу об архиве, там такое:

На основани этих параметров строишь вот такой батник:
Цитата:
X:\Program files\7-Zip\7zG.exe a test.7z "X:\Folder\NDP46-KB3045557-x86-x64-AllOS-ENU\" -r -m0=BCJ2 -m1=LZMA:29:lc8:pb1 -m2=LZMA:24 -m3=LZMA:24

Жмет реально мощно (сжатие 5% уже на 28% прогресса), но я не дождался, т.к. у меня всего 4 гига оперативы. На ночь поставлю для проверки...
ЗЫ:
Судя по всему, LZMA:29 - это 512Мб, 28 - 384, 27 - 256, 26 - 192 и т.д...
Автор: addhaloka
Дата сообщения: 30.07.2015 04:32
sk9heaven 00:55 30-07-2015
Цитата:
И батник тоже не работает.

У меня работает (проверял на другом архиве - NDP452-KB2901907-x86-x64-AllOS-ENU.exe, но думаю разница не принципальна), но архив в итоге на 100 Мб получился (родной - 66,5). Хз, какие там параметры мелкомягкие накрутили.
Автор: GORA2
Дата сообщения: 30.07.2015 10:04

Цитата:
На основани этих параметров строишь вот такой батник:

1 Эти параметры можно увидеть в самом архиваторе 7-Zip и FreeArc для этого совсем не нужен.
2 Полученные параметры не определяют ком. строку однозначно, там могут быть и еще некоторые параметры.

Немного поправил ком. строку

Код: 7z.exe a test28.7z NDP46-KB3033091-x86-x64-AllOS-ENU\* -m0=BCJ2 -m1=LZMA:d28:lc8:pb1 -m2=LZMA:d24 -m3=LZMA:d24
7z.exe a test28m.7z NDP46-KB3033091-x86-x64-AllOS-ENU\* -m0=BCJ2 -m1=LZMA:d28:lc8:pb1 -m2=LZMA:d24 -m3=LZMA:d24 -mb0:1 -mb0s1:2 -mb0s2:3
7z.exe a test384.7z NDP46-KB3033091-x86-x64-AllOS-ENU\* -m0=BCJ2 -m1=LZMA:d384m:lc8:pb1 -m2=LZMA:d24 -m3=LZMA:d24
7z.exe a test384m.7z NDP46-KB3033091-x86-x64-AllOS-ENU\* -m0=BCJ2 -m1=LZMA:d384m:lc8:pb1 -m2=LZMA:d24 -m3=LZMA:d24 -mb0:1 -mb0s1:2 -mb0s2:3
Автор: boi1eI
Дата сообщения: 30.07.2015 10:42
GORA2 (10:04 30-07-2015)
Цитата:
-m1=LZMA:d384m:lc8:pb1
А lzma2 не лучше будет?
Автор: GORA2
Дата сообщения: 30.07.2015 10:49
boi1eI

Цитата:
А lzma2 не лучше будет?

Наверное лучше, но вопрос то был получить результат близкий к оригиналу, а там LZMA. Значит нужно оставлять LZMA для идентичности результатов. Да и разница будет несушественная.
Автор: boi1eI
Дата сообщения: 30.07.2015 10:59
А вообще конечно никаких чудес. В данном случае помогает дикий размер словаря. С 96 мб словарем и fb273 при прочих равных упаковалось в ~225 мб.
Автор: GORA2
Дата сообщения: 30.07.2015 14:14
sk9heaven

Цитата:
А где?

Автор: timsky
Дата сообщения: 30.07.2015 15:27
sk9heaven

Цитата:
И батник тоже не работает.

Работает, просто я забыл путь к 7-zip в кавычки взять, т.к. у меня он без пробелов. В итоге, такоие параметры (с добавленным s=on):
Цитата:
-r -m0=BCJ2 -m1=LZMA:29:lc8:pb1 -m2=LZMA:24 -m3=LZMA:24 s=on
сжали до 95 827 083 байт.

Добавлено:

Цитата:
2 Полученные параметры не определяют ком. строку однозначно, там могут быть и еще некоторые параметры.

Может дружно попросим Автора сабжа исправить это?
Автор: Cryzer
Дата сообщения: 30.07.2015 16:16
Ребят, а можно ли при архивации в 7z сохранять время создания файлов?
Автор: SFC
Дата сообщения: 30.07.2015 17:12

Цитата:
Ребят, а можно ли при архивации в 7z сохранять время создания файлов?

если время архива, то она и так фиксируется, если в имя файла-архива добавлять дату/тайм то только батником. т.е. написать батник, и или путь на него прописать реестре или поместить сам батник в папку ПОСЛАТЬ НА
Автор: Pasha_ZZZ
Дата сообщения: 30.07.2015 17:15
SFC
Я думаю, имелось в виду для каждого файла в архиве...
Автор: Cryzer
Дата сообщения: 30.07.2015 17:43

Цитата:
Я думаю, имелось в виду для каждого файла в архиве...

Да-да, именно это я имел ввиду. Время создания файлов внутри 7z-архива. Просто в WinRAR такая функция есть, а вот в 7-zip что-то не нашёл...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135

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


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