Кнопки для 7-Zip
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Кнопки для 7-Zip Author: ask-rusLocation: Russian Federation PostPosted: Sun Aug 29, 2010 13:26
    —
Поставил 7-Zip в TC версии 9.15 Beta:
Quote:
d:\Total Commander\SOFT\7-Zip\Lang\
d:\Total Commander\SOFT\7-Zip\7-zip.chm
d:\Total Commander\SOFT\7-Zip\7z.dll
d:\Total Commander\SOFT\7-Zip\7-zip.dll
d:\Total Commander\SOFT\7-Zip\7z.exe
d:\Total Commander\SOFT\7-Zip\7zFM.exe
d:\Total Commander\SOFT\7-Zip\7zG.exe
d:\Total Commander\SOFT\7-Zip\7z.sfx
d:\Total Commander\SOFT\7-Zip\7zCon.sfx

Отправился на поиски кнопок и обнаружил, что их нет практически.
Наткнулся на:
Code:
TOTALCMD#BAR#DATA
cmd /c setlocal&title 7z-packing... &for /f "tokens=1-6 delims=:., " %a in ('echo %date% %time:~0,8%') do for %i in ("%CD%") do
for /f "delims=" %%R in ("%S") do cls&%%pp%%\7z a -pПАРОЛЬ -scswin -m0=bcj -m1=lzma:d=21 -ms -mmt """""%%~nxi_[%%c.%%b.%%a-%%d.%%e.%%f].7z""""" """"%%R""""
keymgr.dll
Создание зашифрованного 7z-архива
 
1

Code:
TOTALCMD#BAR#DATA
cmd /c title 7z-unpacking... &%pp%\7z x -aoa
-o"%O" "%O.%E"
%pp%\7z.sfx
Распаковать 7z-ом
 
1

Что касается создания архива, необходима самая простейшая кнопка: архив в текущей панели из выделенных файлов с именем как водится, без дат, времени и т. д. в имени; в формат 7z, максимальной степенью сжатия (Ультра?) методом LZMA2.

В текущих кнопках выше я даже не понял, где указать путь к 7z.exe.

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

На всякий, справку положил тут.

 !  Avada:
Отделено из общей темы по обсуждению кнопок.

#2:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 13:44
    —
ask-rus
А скрипт с имитацией нажатий клавиш в диалоге "Упаковка файлов" с использованием 7zip.wcx не подойдёт? Или обязательно через консольную прогу?

#3:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Aug 29, 2010 13:54
    —
Flasher
Не подойдет.

#4:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 15:04
    —
ask-rus
Причина?

#5:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Aug 29, 2010 15:32
    —
Flasher wrote:
Причина?

Врач не прописал. Обязательно через консольную прогу. Имитации (кроме сепараторов) перестали устраивать.
В конце концов, простенькие шаблоны по кнопкам 7-Zip должны быть на форуме.

#6:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 18:35
    —
Code:
TOTALCMD#BAR#DATA
%comspec% /c start "7-zip сжимает..." /min "%COMMANDER_PATH%\7-Zip\7z.exe"
a -t7z -mx -m0=LZMA2 -mse -ssw -scsWIN -y -- "%O.7z" @%L
%COMMANDER_PATH%\7-Zip\7z.sfx
7z с максимальным сжатием методом LZMA2

1
-1


Last edited by Tol!k on Tue Aug 31, 2010 16:49; edited 2 times in total

#7:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 19:30
    —
ask-rus
Под причиной я понимаю конкретную аргументацию, а не разговор "о погоде". Не думаю, что радение за наличие чего-то на форуме стоит у тебя в приоритете.

Tol!k wrote:
a -t7z -mx -m0=lzma2 "%O.7z" @%L
Что-то я там lzma2 не нашёл. mx9 - макс. уровень сжатия. Может так?:
Code:
TOTALCMD#BAR#DATA
%comspec% /c start "7z сжимает..." /min "<App>\7-Zip\7z.exe"
a -t7z -mx9 -m0=BCJ2 -m1=lzma2 "%T%O.7z" %S
<App>\7-Zip\7z.sfx
Создать 7z(LZMA2)-архив c макс. уровнем сжатия из выделенного в противоположной панели

1
-1


Last edited by Flasher on Sun Aug 29, 2010 21:02; edited 1 time in total

#8:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 19:51
    —
Flasher wrote:
Под причиной я понимаю конкретную аргументацию, а не разговор "о погоде".
Архиватор портабельная штука, в отличии от TCWSHelp

Flasher wrote:
Что-то я там lzma2 не нашёл. mx9 - макс. уровень сжатия. Может так?:
Не видишь суслика? А он есть Smile

А -mx работает как -mx9


Last edited by Tol!k on Sun Aug 29, 2010 19:56; edited 1 time in total

#9:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 19:56
    —
Tol!k wrote:
Архиватор портабельная штука, в отличии от TCWSHelp
Имитировать нажатия клавиш можно и без Хелпера. Wink
Tol!k wrote:
Не видишь суслика? А он есть
Хм. Понял. Я-то в справке искал.)) Но у меня твоя кнопка не работает. Качал даже 7za последнюю, тот же результат.

#10:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 20:00
    —
Flasher wrote:
Я-то в справке искал.)) Но у меня твоя кнопка не работает. Качал даже 7za последнюю, тот же результат.

Справка wrote:
7z.exe - версия командной строки 7-Zip. 7z.exe использует 7z.dll из 7-Zip пакета. 7z.dll также используются Менежером файлов 7-Zip.
7za.exe (a = alone (один)) - автономная версия 7-Zip. 7za.exe поддерживает только 7z, lzma, cab, zip, gzip, bzip2, Z и tar форматы. 7za.exe не использует внешние модули.
Т.е. для lzma2 нужно использовать именно 7z.exe (без а)

#11:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 20:08
    —
Tol!k wrote:
Т.е. для lzma2 нужно использовать именно 7z.exe
Я с 7za только потом экспериментировал, а начал с 7z.exe. Версия какая минимум, которая поддерживает lzma2 ?

#12:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 20:28
    —
history.txt wrote:
9.10 2009-12-30
------------------------------
- 7-Zip for installers now supports LZMA2.


9.09 2009-12-12
------------------------------
- LZMA2 compression method support


Проверил 9.10 beta и 9.15 beta – обе версии сжимают в LZMA2 моей кнопкой

#13:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 21:05
    —
Tol!k
Да, скачал последнюю бету, всё заработало, свою кнопку также поправил. В справке описание LZMA2 также появилось.
Tol!k wrote:
Архиватор портабельная штука
Это поэтому ты его в %ProgramFiles% загнал? Wink

#14:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Aug 29, 2010 21:06
    —
Tol!k
Выделил два файла на Рабочем - кнопка упаковала весь "Documents and Settings".

#15:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 21:07
    —
ask-rus
С моей такого не случится.

#16:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 21:14
    —
ask-rus wrote:
Выделил два файла на Рабочем - кнопка упаковала весь "Documents and Settings".
Surprised
У меня вообще ничего не упаковывала. Добавь ключ -scsWIN
Code:
a -t7z -mx -m0=LZMA2 -mse -ssw -scsWIN -y -- "%O.7z" @%L


Flasher wrote:
Это поэтому ты его в %ProgramFiles% загнал? Wink
У меня 7z там стоит, а не в %COMMANDER_PATH%. Нужно исправить или кому нужно сами сообразят?

#17:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Aug 29, 2010 21:26
    —
Tol!k
Вроде бы работает. Наконец, возникла необходимость в кнопке "Обновить содержимое панели" Smile .
Имя берется с файла под курсором, ну да ладно, устраивает. Спасибо.

#18:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 21:35
    —
Tol!k wrote:
У меня вообще ничего не упаковывала.
Он, наверное, не о виртуальном писал. Если в нём, то с новым вариантом создаётся пустой архив в противоположной панели. Слабая степень сжатия. Проще так:
Code:
a -t7z -mx9 -m0=lzma2 "%O.7z" %S

Tol!k wrote:
У меня 7z там стоит, а не в %COMMANDER_PATH%. Нужно исправить или кому нужно сами сообразят?
Давно сообразили. Просто кто-то о портабельности брякнул.)) А там, между прочим, ещё и проблема с установкой возникает, поскольку в отдельном архиве прога не распространяется. Приходится прибегать к лишним манипуляциям с использованием распаковщиков типа uniextract.

#19:  Author: Serge Yolkin PostPosted: Sun Aug 29, 2010 21:44
    —
Flasher
Quote:
А там, между прочим, ещё и проблема с установкой возникает, поскольку в отдельном архиве прога не распространяется.
http://portableapps.com/apps/utilities/7-zip_portable
?

#20:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 21:47
    —
Serge Yolkin
Неа, промахнулся. Smile

#21:  Author: iNorbert PostPosted: Sun Aug 29, 2010 21:52
    —
Скорее http://sourceforge.net/projects/sevenzip/files/ и уже там распотрошить 7z915_extra.7z

#22:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 21:58
    —
iNorbert
Второй промах.
Кто на новенького? Very Happy

#23:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Aug 29, 2010 22:04
    —
Yo, мужики, а распаковывать-то будем?! (Р а с п а к о в а т ь архив (любой, поддерживаемый 7-Zip) в т е к у щ у ю панель.)

#24:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 22:15
    —
Flasher wrote:
Он, наверное, не о виртуальном писал. Если в нём, то с новым вариантом создаётся пустой архив в противоположной панели.
Я на "реальном" проверял, создавался пустой архив. А как моя кнопка может создать архив в противоположной панели?
Flasher wrote:
Слабая степень сжатия.
Справка wrote:
Примечание: "x" работает как "x=9".
Может файлы такие попались? Архиваторы сейчас умные пошли и не сжимают то, что не жмётся.
Справка wrote:
LZMA2 - модифицированная версия LZMA. Она обеспечивает следующие преимущества перед LZMA:
Лучшая степень сжатия для данных которые не могут быть сжаты. LZMA2 может сохранить такие блоки данных в несжатой форме. Также такие данные будут быстрее распаковываться.

Flasher wrote:
Просто кто-то о портабельности брякнул.))
Я обязан пихать в папку ТС все существующие архиваторы? Для портабельности мне хватает ТС-ного zip-a, потому, что выигрыш в скорости в 2-4 раза по сравнению с .rar и .7z для меня ценнее пары процентов выигрыша в сжатии.

#25:  Author: iNorbert PostPosted: Sun Aug 29, 2010 22:20
    —
Flasher wrote:
iNorbert
Второй промах.
Кто на новенького? Very Happy

В чем промах? 7zr.exe в lzma2 сжимает.

#26:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 22:29
    —
Code:
TOTALCMD#BAR#DATA
%comspec% /c start "7-zip извлекает..." /min "%COMMANDER_PATH%\7-Zip\7z.exe"
x -scsWIN -y -- %P%N
%COMMANDER_PATH%\7-Zip\7z.dll
Извлечь в текущую папку с помощью 7-zip

1
-1


Last edited by Tol!k on Tue Aug 31, 2010 21:04; edited 1 time in total

#27:  Author: FlasherLocation: Москва PostPosted: Sun Aug 29, 2010 22:38
    —
ask-rus wrote:
Р а с п а к о в а т ь архив (любой, поддерживаемый 7-Zip) в т е к у щ у ю панель.
Если просто, то по логике так:
Code:
TOTALCMD#BAR#DATA
%comspec% /c start "7z распаковывает..." /min "<App>\7-Zip\7z.exe"
e %N -o"%O"
<App>\7-Zip\7z.sfx
Распаковать архив под курсором

1
-1
Но тут проблемка, почему-то такой способ перемещает файлы из вложенных папок в корень получателя. Confused

Tol!k wrote:
А как моя кнопка может создать архив в противоположной панели?
Дык попробуй.
Tol!k wrote:
Может файлы такие попались?
Обычные текстовые.
Tol!k wrote:
Я обязан пихать в папку ТС все существующие архиваторы?
Ну мы'ж не о чьих-то обязанностях. При чём тут это..
Tol!k wrote:
Для портабельности мне хватает ТС-ного zip-a, потому, что выигрыш в скорости в 2-4 раза по сравнению с .rar и .7z для меня ценнее пары процентов выигрыша в сжатии.
Да 7z давно уже не формат №1 по степени сжатия. Я сам 7z уже мало использую, в rar и bzip2 пакую для своих нужд.

iNorbert wrote:
7zr.exe в lzma2 сжимает.
Понял. Потом проверю, просто пост Tol'k был для меня уважительным аргументом, хотя этот архив уже в наличии имелся до того.

#28:  Author: Tol!kLocation: Арзамас PostPosted: Sun Aug 29, 2010 23:08
    —
Flasher wrote:
iNorbert wrote:
7zr.exe в lzma2 сжимает.
Понял. Потом проверю, просто пост Tol'k был для меня уважитиельным аргументом, хотя этот архив уже в наличии имелся до того.
Я процитировал Справку.
А
7z915_extra.7z\readme.txt wrote:
7zr.exe - reduced version of console program 7za.exe
, поэтому я даже не подумал проверять. Получается "урезанная" версия полнее неурезанной.
Сейчас проверил, вроде бы пакует. Если только не вызывает для этого нормальный 7z.exe Very Happy

#29:  Author: ask-rusLocation: Russian Federation PostPosted: Tue Aug 31, 2010 20:45
    —
Tol!k, нужно, чтобы извлекал в папку, а не "здесь" или "here". Сейчас распаковал архив и заполонил мусором каталог.

#30:  Author: Tol!kLocation: Арзамас PostPosted: Tue Aug 31, 2010 21:03
    —
Code:
TOTALCMD#BAR#DATA
%comspec% /c start "7-zip извлекает..." /min "%COMMANDER_PATH%\7-Zip\7z.exe"
x -scsWIN -y -o"%O" -- %P%N
%COMMANDER_PATH%\7-Zip\7z.dll
Извлечь в папку c именем архива с помощью 7-zip

1
-1

#31:  Author: ask-rusLocation: Russian Federation PostPosted: Wed Sep 01, 2010 10:48
    —
А теперь выделенные архивы извлечь: каждый архив в отдельную папку с именами архивов.

#32:  Author: Tol!kLocation: Арзамас PostPosted: Wed Sep 01, 2010 23:29
    —
Code:
@echo off &setlocal enableextensions &chcp 1251 >nul
rem  Распаковка с помощью 7-Zip
set "Arc=%commander_path%\7-Zip\7z.exe"

goto :------------------------------------------------------------
rem  Параметры: список "D:\куда\" -o
rem  -o —— в отдельные папки с именами архивов
rem  Пример параметров для TC: "%L" "%%userprofile%%\Мои документы\"
rem  В одноимённые папки расположенные в пути запуска (или в текущем): "%L" -o
rem  В одноимённые папки расположенные рядом с архивами: "%L" "%%~dpf" -o
:------------------------------------------------------------

set "Dest=" &set "cage="
if /i "%~2"=="-o" set "cage=Yes"
if /i "%~3"=="-o" set "cage=Yes"
if not "%~2"=="" if /i not "%~2"=="-o" set "Dest=%~2"
if not "%~3"=="" if /i not "%~3"=="-o" set "Dest=%~3"

if "%cage%"=="Yes" set "Dest=%Dest%.\%%~nf"
for /f "usebackq delims=" %%f in ("%~1") do (
  title Unpacking "%%~nf"
  "%Arc%" x -scsWIN -y -o"%Dest%." -- "%%f"
)

 !  Avada:
Обновлено по просьбе автора 2.08.11.


Last edited by Tol!k on Sat Sep 04, 2010 19:54; edited 1 time in total

#33:  Author: Serge Yolkin PostPosted: Thu Sep 02, 2010 00:45
    —
Tol!k
А что такое
Code:
enableextensions
?

#34:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Sep 02, 2010 11:31
    —
Serge Yolkin wrote:
А что такое
Code:
enableextensions
?

Code:
setlocal /?
Wink

#35:  Author: ask-rusLocation: Russian Federation PostPosted: Thu Sep 02, 2010 11:48
    —
Tol!k
Т.к. наблюдать процессы в консоли меня устраивает, кнопки подрезал до исполняемого и параметров (считаю, что лишние движения, типа "title Распаковка" ни к чему):
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\SOFT\7-Zip\7z.exe
x -scsWIN -y -o"%O" -- %P%N
%COMMANDER_PATH%\ICO\em_UnpackFiles.ico
Р а с п а к о в а т ь  файлы [Win+Alt+F6]

0
-1

В общем-то, как быть с этим в твоей кнопке:
Code:
@echo off &chcp 1251 >nul
setlocal enableextensions

rem  Параметры кнопки: %L -o
rem  -o — каждый архив в отдельную папку с именем архива

if "%~2"=="-o" for /f "usebackq delims=" %%f in ("%~1") do (
title Распаковка %%~nf...
"%COMMANDER_PATH%\7-Zip\7z.exe" x -scsWIN -y -o"%%~nf" -- "%%f"
)
if "%~2"=="" for /f "usebackq delims=" %%f in ("%~1") do (
title Распаковка %%~nf...
"%COMMANDER_PATH%\7-Zip\7z.exe" x -scsWIN -y -- "%%f"
)

?
Кстати, загонял Код в *.BAT и *.CMD с параметрами кнопки: %L -o. Что-то не прокатило...

#36:  Author: Tol!kLocation: Арзамас PostPosted: Thu Sep 02, 2010 17:26
    —
Serge Yolkin, вопрос для другой темы.

Quote:
Кстати, загонял Код в *.BAT и *.CMD
Уже отвечал: лучше в .CMD
Quote:
Что-то не прокатило...
Путь к 7z отличается от твоего, исправил?
Кнопка:
Code:
TOTALCMD#BAR#DATA
%comspec% /c call "%COMMANDER_PATH%\cmd\un7z.cmd"
%L -o
%COMMANDER_PATH%\7-Zip\7z.dll
Извлечь все с помощью 7-zip

1
-1

#37:  Author: Samwatas PostPosted: Thu Sep 02, 2010 18:56
    —
Мне кажется, было бы замечательно, если бы Гислер добавил поддержку 7z в тотал (как он это сделал для rar - ведь 7z опенсорсный, так что это не составило бы большого труда). А лучше бы встроить его так, как zip - это было бы вообще замечательно! Просто удивительно - добавить поддержку таких редких архивов как lha, uc2, Ace (ладно там arj - он наверняка был популярен в эпоху доса и первых версий ещё Windows Commander) - и не включить поддержку более популярных 7-Zip или хотя бы FreeArc. Просто это было бы лучше, чем ставить всякие костыли типа MultiArc или кнопки. Интересно, кто-то предлагал Гислеру такую идею и что он думает по этому поводу?
Просто мне лично (да и большинству форумчан, я уверен, тоже) практически не встречались такие архивы как uc2, например, но зато частенько встречаются архивы 7z - так зачем в тотале нужна поддержка этого антиквариата?


Last edited by Samwatas on Fri Sep 03, 2010 22:40; edited 1 time in total

#38:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Sep 02, 2010 21:39
    —
Samwatas wrote:
Интересно, кто-то предлагал Гислеру такую идею и что он думает по этому поводу?

Такую идею предлагали Гислеру десятки раз. Если интересно, кто что думает, можно много чего найти на оффоруме по 7-Zip. Последний заход — здесь. А наша тема — о другом.

#39:  Author: Samwatas PostPosted: Fri Sep 03, 2010 22:53
    —
Ладно, чёрт с ней, с поддержкой популярных архиваторов (хотя позиция Гислера для меня выглядит весьма странной - ведь их своевременная поддержка только добавила бы популярности Тоталу и привлекла бы больше клиентов). Вы мне скажите, любители кнопок - сколько кнопок у вас отвечают за операции с 7z (упаковки, распаковки и т.д.)?
Просто я тут подумал, что можно было бы написать интеллектуальный скрипт (на АвтоИт), который бы в зависимости от выделенных файлов выполнял бы те или иные операции (и за всё это отвечала бы всего ОДНА кнопка).
Например, если на панели источника выделен архив, ана панели приемника - папка, то значит нужно распаковать архив в папку.
Если наоборот - то нужно добавить содержимое папки в указанный архив.
Если выделено две папки - значит содержимое одной упаковать в архив, созданный в другой папке и т.д.
Как думаете, это было бы проще, чем иметь кучу кнопок?

#40:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Sep 04, 2010 13:33
    —
Samwatas wrote:
сколько кнопок у вас отвечают за операции с 7z (упаковки, распаковки и т.д.)?

Три. Упаковать, упаковать с паролем, распаковать.

Разве ж это куча.
Tol!k wrote:
Путь к 7z отличается от твоего, исправил?

Ага, работает.

#41:  Author: Samwatas PostPosted: Sat Sep 04, 2010 16:19
    —
ask-rus wrote:
Samwatas wrote:
сколько кнопок у вас отвечают за операции с 7z (упаковки, распаковки и т.д.)?

Три. Упаковать, упаковать с паролем, распаковать.

Предлагаю сократить кол-во кнопок ВТРОЕ (!) - до одной штуки. :D

#42:  Author: Tol!kLocation: Арзамас PostPosted: Sat Sep 04, 2010 19:58
    —
+ Добавлено: можно распаковывать в другую панель или в конкретную папку

#43:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Sep 05, 2010 17:35
    —
Не у всех есть 7-Zip с lzma2, как насчет упаковки с максимальным сжатием выделенных файлов в текущую панель 7-Zip-ом в формат *.ZIP. (Samwatas, 3+1=4 Wink )

#44:  Author: Samwatas PostPosted: Sun Sep 05, 2010 18:20
    —
С форматом зип неплохо справляется сам тотал. Зачем тут 7z?

#45:  Author: goraLocation: Иваново PostPosted: Sun Sep 05, 2010 19:01
    —
Tol!k wrote:
Справка wrote:
7z.exe - версия командной строки 7-Zip. 7z.exe использует 7z.dll из 7-Zip пакета. 7z.dll также используются Менежером файлов 7-Zip.
7za.exe (a = alone (один)) - автономная версия 7-Zip. 7za.exe поддерживает только 7z, lzma, cab, zip, gzip, bzip2, Z и tar форматы. 7za.exe не использует внешние модули.
Т.е. для lzma2 нужно использовать именно 7z.exe (без а)
Информация, изложенная в справке, устарела. Все варианты (7z, 7za, 7zr) поддерживают LZMA2. Но 7z имеет преимущества перед своими автономными собратьями - версия х64 и поддержка ОЗУ > 2ГБ. При работе с большими архивами (> 128MB) это не маловажное преимущество.

Last edited by gora on Sun Sep 05, 2010 20:05; edited 1 time in total

#46:  Author: Tol!kLocation: Арзамас PostPosted: Sun Sep 05, 2010 20:01
    —
[offtop]
gora, всё забываю спросить, gora с forum.oszone.net это Вы?
[/offtop]

#47:  Author: goraLocation: Иваново PostPosted: Sun Sep 05, 2010 20:03
    —
Да.

#48:  Author: Tol!kLocation: Арзамас PostPosted: Sun Sep 05, 2010 20:27
    —
Респект!

#49:  Author: Samwatas PostPosted: Sun Sep 05, 2010 21:48
    —
Респекты респектами, конечно, но давайте ближе к нашим баранам (кнопкам 7z). пре-бета версия - http://upload.com.ua/get/901904649/ (исправленная версия) Confused
Подключение:
1. Распаковываем архивчик в папочку с тоталом.
2. Вытягиваем Smart7z.exe как кнопку на панель.
3. Прописываем параметры - %P%N %T%M
Пока поддерживается только 2 режима:
1. В панели источника отмечен 7z архив, в панели приемника - папка (действие - указанный архив распаковывается в указанную папку).
2. В панели источника отмечена папка, в панели приемника - существующий 7z архив (действие - указанная папка добавляется к указанному (существующему!) архиву).
Осталось добавить обработку ещё 2 ситуаций: папка - папка и архив - архив.
Уже поддерживается все 4 режима.

В будущем возможно изменить параметры кнопки на "%P%S - %T%R" (без кавычек) и обрабатывать списки выделенных файлов\папок.


Last edited by Samwatas on Mon Sep 06, 2010 19:59; edited 4 times in total

#50:  Author: Samwatas PostPosted: Mon Sep 06, 2010 13:40
    —
Ладно, пусть будет пре-бета версия Laughing - http://upload.com.ua/get/901904649/ (исправленная версия)
Реализовано все четыре варианта (папка-папка, папка-архив, архив-папка, архив-архив).
Параметры кнопки те же, что и раньше.


Last edited by Samwatas on Mon Sep 06, 2010 19:06; edited 2 times in total

#51:  Author: goraLocation: Иваново PostPosted: Mon Sep 06, 2010 14:12
    —
Samwatas wrote:
В панели источника отмечен 7z архив, в панели приемника - папка (действие - указанный архив распаковывается в указанную папку).
Когда я делал свою кнопку, мне показалось, что одновременная работа с двумя панелями лишь затрудняет пользование кнопкой. У меня архив распаковывается в папку с именем архива рядом с самим архивом. Дабы не затирать одноименную папку, если она уже существует, к имени папки добавляется штамп дата_время. Аналогично производится и упаковка выделенных объектов (файлов/папок). Здесь имя архива формируется несколько иначе. Обновления архива я не предусматривал, не было у меня в нем необходимости, т.к., задачи были несколько иные...
Удобнее ли будет пользователю следить за двумя панелями сразу, а то распакуешь архив в другую панель, а там стояла не та папка, а какая нибудь системная и выгребай потом из нее "мусор"!?!? Sad
Вы так не считаете? Wink
PS
Включение компонентов архиватора в кнопку считаю не верным решением по следующим причинам:
1 Включен только 7zG, а он на х86 и небольшом ОЗУ проигрывает 7z при работе с большими архивами. 7z можно заставить работать со словарем 128 МБ, а вот с 7zG это вряд ли удастся сделать из-за фрагментированности ОЗУ.
2 У пользователя может быть уже установлен архиватор, так зачем же ему еще дополнительные файлы за которыми нужно следить и обновлять при обновлении архиватора!?
3 У пользователя может быть х64 система и архиватор х64, и он (пользователь), при использовании встроенных в кнопку компонентов, лишится всех прелестей х64 архиватора и не сможет использовать свое ОЗУ в полной мере.
PPS
Вариант архив-архив работает странно. Из добавляемого архива (1) в обновляемом (2) появляется структура папок архива 1 и файлы из корня этого архива, а файл из вложенной папки архива 1 появляется в архиве 2, но нулевой длины.

#52:  Author: Samwatas PostPosted: Mon Sep 06, 2010 15:16
    —
Отвечаю по порядку:
Не буду спорить насчёт двух панелей, замечу только, что тотал - это двухпанельный менеджер, поэтому он заточен на работу с 2-мя панелями. Мне кажется, это дело привычки. Хотя я для того и выложил кнопку, чтобы выслушать разные мнения (если большинство выскажется за изменение поведения кнопки то это не сложно будет сделать).
Распаковка архива: я распаковываю архив в указанную папку, вы создаете папку с именем архива (в которую и распаковываете архив). На мой взгляд, оба метода имеют недостатки (я тоже не люблю, когда при распаковке архива в папку с архивом высыпается всё содержимое, однако мне также не очень нравится, когда при распаковке выпадает папка, внутри которой ещё одна папка (прямо матрёшка какая-то) внутри которой уже идут папки с файлами). При желании можно сделать более умную распаковку (если в корне архива только одна папка или один файл, то распаковывать всё это как есть, если же там несколько папок и\или файлов, то создать папку с именем архива для распаковки уже в нее). Это было бы немного лучше, как считаете?
По поводу включения компонентов архиватора - я больше затачивал под портативное использование тотала (если я пришёл куда-то и принёс что-то в 7з-архиве, а там архиватор не установлен, да ещё и устанавливать нельзя или нежелательно?). Если кому-то хочется положить другую версию, то тут нет никаких проблем при условии что там используются те же параметры командной строки (только не забудьте переименовать исполняемый файл в 7zG.exe).
П.С. Архив я перезалил (исправил одну маленькую ошибку).

#53:  Author: Serge Yolkin PostPosted: Mon Sep 06, 2010 15:56
    —
Samwatas wrote:
При желании можно сделать более умную распаковку (если в корне архива только одна папка или один файл, то распаковывать всё это как есть, если же там несколько папок и\или файлов, то создать папку с именем архива для распаковки уже в нее). Это было бы немного лучше, как считаете?
Лучше, если только папка. Некоторые программы в виде одного файла при первом запуске создают еще несколько, так что даже один файл - лучше в отдельную папку. А идея интересная. Очень хотел бы попробовать в исполняемом виде. И, действительно, можно без архиватора.

#54:  Author: goraLocation: Иваново PostPosted: Mon Sep 06, 2010 16:13
    —
Samwatas wrote:
тотал - это двухпанельный менеджер

Я это знаю. Smile Но считаю, что:
- установка в противоположной панели принимающей папки, а часто и создание оной ввиду ее отсутствия - лишние телодвижения.
- извлечение без предупреждения может привести к печальным последствиям в случае случайного нажатия на кнопку (могут быть затерты нужные файлы в не санкционированном месте). В моем варианте будет просто создана новая папка не затирающая ни чего и удалить ее будет легко, если нажатие на кнопку было ошибочным.
Samwatas wrote:
можно сделать более умную распаковку

При этом теряется информация об исходной структуре архива, а иногда она очень важна. Мы, например, не сможем узнать, была ли у Вас в архиве кнопки папка или же все было упаковано без папки. Я от такого варианта отказался.
Samwatas wrote:
затачивал под портативное использование
Тогда ясно "откуда ноги растут", это на любителя.
Samwatas wrote:
при условии что там используются те же параметры командной строки

Исходников-то нет и не ясно какие они у Вас, эти параметры. А хотелось бы на них взглянуть, т.к., думаю и в них можно найти предмет для обсуждения... Вот после этого можно вернутся и к вопросу портабельности...

И еще... 7-Zip распаковывает очень много типов архивов (и не только архивов), почему нужно ограничиваться только расширением .7z? Wink

#55:  Author: Samwatas PostPosted: Mon Sep 06, 2010 19:56
    —
Quote:
- установка в противоположной панели принимающей папки, а часто и создание оной ввиду ее отсутствия - лишние телодвижения

Вполне возможно, поэтому достаточно реализовать "умную" распаковку, чтобы избавиться от этого недостатка (правда буду ли я реализовывать всё это, учитывая мою лень?).
Quote:
извлечение без предупреждения может привести к печальным последствиям в случае случайного нажатия на кнопку (могут быть затерты нужные файлы в не санкционированном месте).

Случайно нажать на кнопку конечно можно, однако случайно перезаписать файлы нельзя (поскольку 7з как и большинство архиваторов запрашивает подтверждение), тем не менее можно добавить вывод окошка типа "вы действительно хотите распаковать этот архив, или просто случайно ткнули в кнопку?" хотя это тоже будет лишнее телодвижение.
Quote:
При этом теряется информация об исходной структуре архива, а иногда она очень важна. Мы, например, не сможем узнать, была ли у Вас в архиве кнопки папка или же все было упаковано без папки. Я от такого варианта отказался.

Опять же не буду спорить (вполне возможно для вас это важно), однаку лично у меня никогда не возникало такой нужды и я даже не могу представить, для чего это мне может хоть когда-нибудь понадобиться.
Quote:
Тогда ясно "откуда ноги растут", это на любителя.

По-моему, портативные программы достаточно удобны. Лично я по возможности стараюсь использовать портативки кроме случаев, когда программа ассоциирует себя с какими-то файлами или прописывается в контекстное меню и т.д. Большинство производителей софта это поняло и тоже облегчает процесс портабелизации своим пользователям, взять хотя бы тот же тотал - сперва начиналось с ключа UseIniInProgramDir, потом пошли переменние типа %COMMANDER_PATH% и внутренние файловые ассоциации и т.д.
Тот же броузер - переставил Виндовс, а в портативном Файрфоксе или Опере всё по прежнему: закладки, сессии, логины и пароли - всё на месте.
Quote:
Исходников-то нет и не ясно какие они у Вас, эти параметры. А хотелось бы на них взглянуть, т.к., думаю и в них можно найти предмет для обсуждения..

Вам нужны исходники? Вы тоже балуетесь Автоитом? Very Happy
Параметры пока стандартные (строго по хелпу):
Для упаковки - 7z.exe а архив.7z папка_упаковки\*
Для распаковки - 7z.exe x архив.7z -o_папка_распаковки
Дополнительные ключи (типа -m, -t и др.) пока не используются (это пока бета версия кнопки Razz ), но при необходимости добавить нужное не составит труда.
Quote:
И еще... 7-Zip распаковывает очень много типов архивов (и не только архивов), почему нужно ограничиваться только расширением .7z?

Ну во-первых тема называется "Кнопки для 7-Zip", во-вторых архивы zip и rar неплохо поддерживаются самим тоталом, остальные... Ну для исо есть плагин (хотя и для 7z он тоже есть, но он меня не очень впечатляет), остальное довольно редкое (хотя всякие гзипы-бзипы у линуксоидов и встречаются часто, тем не менее). Хотя при большой необходимости и это можно добавить. Конкретно вам это нужно, или вы просто спросили?

#56:  Author: goraLocation: Иваново PostPosted: Mon Sep 06, 2010 22:25
    —
Samwatas wrote:
тема называется "Кнопки для 7-Zip"

7-Zip - это название архиватора, а 7z - это основной формат этого архиватора, но далеко не единственный и поддержка кнопкой распаковки других типов архивов не противоречит названию темы.

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

#57:  Author: Samwatas PostPosted: Mon Sep 06, 2010 22:37
    —
gora wrote:
Samwatas wrote:
тема называется "Кнопки для 7-Zip"

... а 7z - это основной формат этого архиватора, но далеко не единственный и поддержка кнопкой распаковки других типов архивов не противоречит названию темы.

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

#58:  Author: goraLocation: Иваново PostPosted: Mon Sep 06, 2010 22:47
    —
Samwatas wrote:
сколько у вас кнопок такой направленности

Кнопка всего одна, та что не понравилась топикстартеру в первом посте.

#59:  Author: Samwatas PostPosted: Mon Sep 06, 2010 22:54
    —
И она одна всё делает (упаковку, распаковку и т.д.)?

#60:  Author: goraLocation: Иваново PostPosted: Mon Sep 06, 2010 23:02
    —
Да

#61:  Author: Serge Yolkin PostPosted: Wed Sep 08, 2010 19:46
    —
[offtop]
На оффсайте появилась beta 9.16
[/offtop]

#62:  Author: SVM PostPosted: Wed Nov 24, 2010 16:58
    —
Code: wrote:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\arc\7z.exe
x -scsWIN -y -o"%O" -- %P%N
%COMMANDER_PATH%\Plugins\arc\7z.exe
Распаковать файлы

1
-1


Как сделать, чтобы архив распаковывался в противоположную панель?
Есть ли параметр командной строки для 7z.exe (LZMA, LZMA2) "размер слова" (в справке не нашёл)?

#63:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Nov 24, 2010 17:37
    —
SVM wrote:
Как сделать, чтобы архив распаковывался в противоположную панель?
Задать соответствующую папку в параметре -o. Сейчас у тебя стоит %O - это имя файла без расширения. А если задашь %T, будет в противоположную панель, а если задашь %T%O - будет в папку с именем архива в противоположной панели. И не забывай кавычки - в твоей команде они есть.

SVM wrote:
Есть ли параметр командной строки для 7z.exe (LZMA, LZMA2) "размер слова" (в справке не нашёл)?
Насколько я понял, за это отвечает опция fb= параметра -m.
Quote:
fb={N}
Sets number of fast bytes for LZMA. It can be in the range from 5 to 273. The default value is 32 for normal mode and 64 for maximum and ultra modes. Usually, a big number gives a little bit better compression ratio and slower compression process.
Только я так и не понял, чего эти fast bytes делают. Very Happy

#64:  Author: SVM PostPosted: Wed Nov 24, 2010 22:24
    —
MVV Спасибо.

#65:  Author: ask-rusLocation: Russian Federation PostPosted: Mon Dec 20, 2010 12:43
    —
ask-rus wrote:
Не у всех есть 7-Zip с lzma2, как насчет упаковки с максимальным сжатием выделенных файлов в текущую панель 7-Zip-ом в формат *.ZIP.

Вновь подниму неучтенное. Все кнопки по архивации работают с 7-Zip,

поэтому нужна кнопка для упаковки в формат *.ZIP именно 7-Zip-ом, как единственная у меня нерабочая.
Пробовал такую кнопку:
Code:
[em_PackFilesInZIP]
button=%COMMANDER_PATH%\ICO\zip.ico
cmd=%COMMANDER_PATH%\SOFT\7-Zip\7z.exe
param=a -tzip -mx "%O.zip" @%L

Но вместо файла на рабочем столе, пакует весь Documents and Settings.
Конечно, хотелось бы аналогичную этой:
Code:
[em_PackFiles]
button=%COMMANDER_PATH%\ICO\em_PackFiles.ico
cmd=%COMMANDER_PATH%\SOFT\7-Zip\7z.exe
param=a -t7z -mx -m0=LZMA2 -mse -ssw -scsWIN -y -- "%O.7z" @%L
menu=У п а к о в а т ь  файлы [Win+Alt+F5]

#66:  Author: FlasherLocation: Москва PostPosted: Mon Dec 20, 2010 13:58
    —
ask-rus wrote:
как насчет упаковки с максимальным сжатием
В твоей команде немаксимальное сжатие, я уже писал об этом.

#67:  Author: ask-rusLocation: Russian Federation PostPosted: Mon Dec 20, 2010 15:35
    —
Flasher wrote:
В твоей команде немаксимальное сжатие, я уже писал об этом.

Ну 9, так 9.
Code:
[em_PackFiles]
button=%COMMANDER_PATH%\ICO\em_PackFiles.ico
cmd=%COMMANDER_PATH%\SOFT\7-Zip\7z.exe
param=a -t7z -mx9 -m0=LZMA2 -mse -ssw -scsWIN -y -- "%O.7z" @%L
menu=У п а к о в а т ь  файлы [Win+Alt+F5]

...

#68:  Author: cojoc PostPosted: Tue Apr 24, 2012 00:05
    —
Есть кнопка, раньше работала, сейчас нет:

Code:
%COMMANDER_PATH%\Plugins\arc\7z.exe
x -scsUTF-8 -y -o"%T%O" -- %P%N

Распаковка с помощью 7-zip  в противоположную панель

Можете что-то подсказать?
7z.exe версия 9.22
7z на мгновение запускается, но результата нет.

#69:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Apr 24, 2012 09:42
    —
Добавь ? в начало строки параметров (перед x), потом скопируй строку параметров, которую покажет тотал, открой консоль и запусти архиватор сам с этой строкой, увидишь вывод. Или читай тут, как увидеть, что пишет архиватор.

#70:  Author: cojoc PostPosted: Tue Apr 24, 2012 20:37
    —
MVV Сделал.
Пишет The filename, directory name, or volume label syntax is incorrect.

#71:  Author: Tol!kLocation: Арзамас PostPosted: Tue Apr 24, 2012 22:13
    —
почему UTF-8 ?

#72:  Author: cojoc PostPosted: Tue Apr 24, 2012 22:22
    —
Потому что хочется символов больше. Так с win тот же эффект.
Может это связано с бетой?

#73:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Apr 25, 2012 10:41
    —
У меня с 9.20 кнопка работает.

А смысл использовать бету? Что в ней такого, что тебе нужно, и чего нет в 9.20?

Кстати, с 9.22 у меня тоже работает (вытащил из дистрибутива файлы 7z.exe и 7z.dll). Может, проблема в пути к файлу?

#74:  Author: Iori PostPosted: Tue Oct 16, 2012 09:15
    —
Попробовал две кнопки на упаковку 7zip-ом которые были здесь выложены, но не одна не сработала как надо.
(Одна здесь: http://forum.wincmd.ru/viewpost.php?p=67198)
(Другая здесь: http://forum.wincmd.ru/viewpost.php?p=67199)

Обе кнопки не сохроняют полное имя архива если в папкe которую архивировают содержится более чем одна точка.

Папка Beyond Compare 3.3.5.15075 после кнопки будет Beyond Compare 3.3.5.7z

Если поменять %О на %N то тогда у фаилов будут двойные оканчания - file.doc.7z

#75:  Author: FlasherLocation: Москва PostPosted: Tue Oct 16, 2012 17:38
    —
Iori
Так обошёлся с параметрами Гислер, ничего не поделаешь. Сам не понимаю, зачем %O для папок отделяет последние символы после последней точки.
В данном случае можно использовать скрипты вроде этого.

#76:  Author: Iori PostPosted: Tue Oct 16, 2012 20:57
    —
Flasher

Не подумал бы что такую простую вещь он не исправил за столько лет существования командера.

Спасибо за скрипт. Буду копаться.

#77:  Author: FlasherLocation: Москва PostPosted: Tue Oct 16, 2012 23:30
    —
Iori
Там таких вещей воз и маленькая тележка, всего сходу и не перечислишь..

#78:  Author: vbyen PostPosted: Sun Oct 21, 2012 22:44
    —
Tol!k, за долгое время использования внезапно обнаружил, что твой батник не распаковывает архивы внутри каталогов с кириллическими именами или это только у меня одного так?
Можно это дело починить без ущерба прежнему функционалу? Ибо батник крайне нужен, вся распаковка на нем висит.

#79:  Author: FlasherLocation: Москва PostPosted: Sun Oct 21, 2012 23:02
    —
vbyen
Если нужно распаковывать в папки рядом с архивами, то можно ещё мой скрипт использовать.

#80:  Author: vbyen PostPosted: Mon Oct 22, 2012 01:04
    —
Flasher, спасибо, великолепный скрипт!
Единственное, можно подсказку - что в коде нужно изменить, чтобы сделать второй вариант скрипта (или доработку этого) для пакетной простой распаковки (не в одноименные каталоги)?
Это где-то здесь?
Code:
WSH.Run """" & Proga & """ x """ & File & """ -o""" & NF & """ -y", 0, True

#81:  Author: Iori PostPosted: Mon Oct 22, 2012 01:23
    —
vbyen

У меня вроде Толикин батник нормально распаковывает архивы внутри каталогов с кириллическими именами.

Закачайте ваш файил на rghost.

#82:  Author: FlasherLocation: Москва PostPosted: Mon Oct 22, 2012 02:06
    —
vbyen
Поменять
Code:
      NF = FSO.CreateFolder(FSO.GetParentFolderName(File) & "\"  & FSO.GetBaseName(File) & "\" )
      WSH.Run """" & Proga & """ x """ & File & """ -o""" & NF & """ -y", 0, True
на
Code:
      WSH.Run """" & Proga & """ x """ & File & """ -o""" & FSO.GetParentFolderName(File) & "\"" -y", 0, True

#83:  Author: vbyen PostPosted: Mon Oct 22, 2012 04:15
    —
Flasher, еще раз спасибо! Фикс кода сработал на ура.
И к слову, этот вариант скрипта у меня вел себя своеобразно - мгновенно после запуска радостно сообщал "Распаковка завершена!" соответственно без всякой распаковки)

Iori, да вроде как очевидно, что дело не в конкретных архивах. Вероятно, баг работы Толиного батника имеет мой частный характер (никто ведь еще не жаловался на его неработоспособность). Недавно чинил сбой в системных шрифтах после установки/сноса одного кривого ПО - возможно, в этом причина ранее указанного бага с кириллическими именами каталогов.

#84:  Author: FlasherLocation: Москва PostPosted: Mon Oct 22, 2012 11:54
    —
vbyen, пожалуйста.
vbyen wrote:
без всякой распаковки
Потому что он обрабатывает только архивы в структуре выбранных каталогов, а не выбранные в панели архивы.

#85:  Author: vbyen PostPosted: Thu Nov 01, 2012 18:37
    —
Flasher, еще такой нюанс — возможно ли и как сделать визуализацию процесса распаковки для твоих скриптов?
Подойдет любая свернутая консоль (или в идеале — процесс-окно самого 7zG)

#86:  Author: FlasherLocation: Москва PostPosted: Thu Nov 01, 2012 20:11
    —
vbyen
А зачем? Там же окно в конце упаковки появляется.

#87:  Author: vbyen PostPosted: Thu Nov 01, 2012 21:59
    —
Flasher, привычнее наблюдать в трее любую иконку процесса распаковки.
А окошко подтверждения ... признаться, всякий раз слегка нервирует среди полной тишины дожидаться когда оно наконец всплывет Wink

#88:  Author: FlasherLocation: Москва PostPosted: Thu Nov 01, 2012 22:57
    —
vbyen
Фишка в том, чтобы во время распаковки можно было заниматься своими делами, не отвлекаясь на работу утилиты. Особенно актуально при большом кол-ве архивов и их размере. Уведомления для этого достаточно. А в данном случае нельзя подвязать все процессы к одному прогрессу. Много сменяющихся окон/иконок с разными показаниями будут нервировать куда больше.
И с вопросом стоило бы обращаться по месту расположения скрипта.

#89:  Author: vbyen PostPosted: Fri Nov 02, 2012 05:08
    —
Ок, кривоватый самофикс)
Любой легкий экзешник запускается свернутым в начале распаковки
Code:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%COMMANDER_PATH%\Soft\Utils\archivers\file.exe",7

И в конце распаковки прибивается
Code:
WshShell.Run "taskkill /IM file.exe", 0

В качестве индикации вроде безглючно работает

p.s. на скрипт повесил пустой консольный exe, а потом задним числом подумал, что в него можно было и простенькую 8-бит муз. тему вставить.
На любителя, конечно)

#90:  Author: FlasherLocation: Москва PostPosted: Fri Nov 02, 2012 10:10
    —
Чтобы консольные окна располагались в свёрнутом виде, достаточно в приведённой мной строке 0 заменить на 2. taskkill тут никакой не нужен.

#91:  Author: vbyen PostPosted: Fri Nov 02, 2012 13:11
    —
Flasher, ну вот собственно об этом с самого начала и речь была
Спасибо!

#92:  Author: dmitriy111 PostPosted: Mon May 20, 2013 18:26
    —
А что нужно прописать, чтобы архив распаковывался не в папку, где лежит 7za.exe, а в папке с архивом?

7za.exe x ...

И где можно почитать про параметры для кнопок Total Commander'a?

#93:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon May 20, 2013 19:00
    —
dmitriy111
Где почитать? В справке, разумеется. Или в соответствующей части справочника по командам.

#94:  Author: Iori PostPosted: Mon Mar 24, 2014 10:17
    —
Ребята пытаюсь сделать кнопку по мотивам вот этой кнопки.

Code:

TOTALCMD#BAR#DATA
%comspec% /c start "7-zip Packing..." /min "%COMMANDER_PATH%\Packers\7zg.exe"
a -t7z -mx -m0=LZMA2 -mse -ssw -scsWIN -y -- %N.7z "@%L"
%COMMANDER_PATH%\Icons\7zip_add.ico
Add all to 7-Zip (Full Path) - Pack FOLDERS (Ultra Compression)

1
-1


Надо что-бы кнопка упаковала все выбранные файлы в индивидуальные архивы zip с максимальным сжатием LZMA.

Пример:
file1.nes --> file1.zip
file2.nes --> file2.zip
file3.nes --> file3.zip

Спасибо.

#95:  Author: FlasherLocation: Москва PostPosted: Mon Mar 24, 2014 15:58
    —
Iori
Было.

#96:  Author: Iori PostPosted: Mon Mar 24, 2014 20:18
    —
Flasher

Спасибо! Отличный скрипт.
Использую этот

Можно ли как то сделать что-бы диалог был не в кракозябрах.
Пример: Здесь

Пока я закомментировал вот эти линии.


Code:
'WSH.Popup "Упаковка завершена!", 1.4 , "Результат", 64
'Set FSO = Nothing
'Set WSH = Nothing
'WScript.Quit

#97:  Author: FlasherLocation: Москва PostPosted: Mon Mar 24, 2014 20:38
    —
Iori
Ссылка мёртвая. Последние 3 трогать нет смысла.
Попробуй поставить перед первой указанной строку:
Code:
SetLocale(1049)

#98:  Author: Iori PostPosted: Mon Mar 24, 2014 21:57
    —
Flasher

Спасибо но
Code:
SetLocale(1049)
не помог.

Вот ещё картинка как это выглядит.
http://s10.postimg.org/5fpomakk9/2014_03_24_113428.jpg

Пробовал так:
Code:

' Вывод сообщения и выход:
SetLocale(1049)
WSH.Popup "Упаковка завершена!", 1.4, "Результат", 64
Set FSO = Nothing : Set WSH = Nothing : WScript.Quit


и так:
Code:

' Вывод сообщения и выход:
SetLocale(1049) WSH.Popup "Упаковка завершена!", 1.4, "Результат", 64
Set FSO = Nothing : Set WSH = Nothing : WScript.Quit


Во втором варианте скрипт выдаёт ошибку.

Я наверно просто закомментирую 'WSH.Popup "Упаковка завершена!", 1.4 , "Результат", 64 , что-бы вас не мучать.

#99:  Author: Skif_off PostPosted: Mon Mar 24, 2014 22:11
    —
Iori
А если сохранить в UTF-8 или родной вендовой UTF-16 LE?

#100:  Author: FlasherLocation: Москва PostPosted: Mon Mar 24, 2014 23:07
    —
Iori wrote:
Вот ещё картинка как это выглядит.
Файл скрипта надо было сохранять не в UTF-8, а в обычный ANSI.

#101:  Author: Iori PostPosted: Mon Mar 24, 2014 23:53
    —
Flasher

Вот теперь всё как надо. Smile

Спасибо ещё раз за ваши скрипты !

#102:  Author: FlasherLocation: Москва PostPosted: Sat May 31, 2014 13:41
    —
Запрос.
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\7-Zip\7z.exe
e %V -o"%T%O\" *.gif *.png *.jpg -aour
wcmicons.dll,31
Рекурсивно распаковать файлы gif, png, jpg из архива под курсором в папку др. панели с тем же именем
%COMMANDER_PATH%\Utils\7-Zip\
1

#103:  Author: FlasherLocation: Москва PostPosted: Sun Oct 05, 2014 21:47
    —
Ещё запрос:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c for %# in (*.*) do "%COMMANDER_PATH%\Utils\7-Zip\7z.exe" a "%~n#.zip" "%#"

wcmicons.dll,30
Упаковать файлы активной папки в однобазовые zip-архивы

1

#104:  Author: Iori PostPosted: Wed Dec 24, 2014 05:44
    —
Вопрос к Tol!k

Уже давно использую ваш батник для распаковки с помощью 7-Zip.

Решил на днях обновить на новую бету (7zip v9.35).
Теперь когда использую кнопку с этим батником, появляется новая папка с именем архива и точкой в самом конце.
В папку нельзя зайти и нельзя удалить.

Внизу батник и сама кнопка.


Code:

@echo off &setlocal enableextensions &chcp 1251 >nul
rem  Распаковка с помощью 7-Zip
set "Arc=%COMMANDER_PATH%\Packers\7zg.exe"

goto :------------------------------------------------------------
rem  Параметры: список "D:\куда\" -o
rem  -o -- в отдельные папки с именами архивов
rem  Пример параметров для TC: "%L" "%%userprofile%%\Мои документы\"
rem  В одноимённые папки расположенные в пути запуска (или в текущем): "%L" -o
rem  В одноимённые папки расположенные рядом с архивами: "%L" "%%~dpf" -o
:------------------------------------------------------------

set "Dest=" &set "cage="
if /i "%~2"=="-o" set "cage=Yes"
if /i "%~3"=="-o" set "cage=Yes"
if not "%~2"=="" if /i not "%~2"=="-o" set "Dest=%~2"
if not "%~3"=="" if /i not "%~3"=="-o" set "Dest=%~3"

if "%cage%"=="Yes" set "Dest=%Dest%.\%%~nf"
for /f "usebackq delims=" %%f in ("%~1") do (
  title Unpacking "%%~nf"
  "%Arc%" x -scsWIN -y -o"%Dest%." -- "%%f"
)



Code:

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Utilities\Scripts\7zip_unpack.cmd"
"%L" -o
%COMMANDER_PATH%\Icons\7zip_extract.ico
Extract all with 7-Zip (Maintain Path)

1
-1


#105:  Author: FlasherLocation: Москва PostPosted: Wed Dec 24, 2014 14:51
    —
Iori
А мой скрипт (TCKB) не годится?

 !  Avada:
Часть обсуждения перенесена в более подходящую тему.

#106:  Author: Kiril__777 PostPosted: Fri Sep 09, 2016 16:48
    —
Flasher wrote:
vbyen
Если нужно распаковывать в папки рядом с архивами, то можно ещё мой скрипт использовать.

Сохранить как WSH скрипт?
С каким параметром в кнопке запускать?
Выбираю папку, жму кнопку, появляется "Сценарий не указан". Где его указать?
Спасибо

#107:  Author: FlasherLocation: Москва PostPosted: Fri Sep 09, 2016 19:42
    —
Kiril__777
Актуальный скрипт находится здесь, а тема его обсуждения та, что приведена по ссылке в цитате. Памятка сверху подфорума.

#108:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 02:31
    —
Flasher
всеравно не пойму как он работает, максимум что он распаковал это три dll-ки, как распаковать архивы не пойму, путь указал правильный, никаких диалоговых сообщений не появилось.
Flasher wrote:
Kiril__777
Актуальный скрипт находится здесь, а тема его обсуждения та, что приведена по ссылке в цитате. Памятка сверху подфорума.

Где?

#109:  Author: FlasherLocation: Москва PostPosted: Sat Sep 10, 2016 02:48
    —
Kiril__777
Тема для обсуждения здесь. И не надо цитировать предыдущий пост.

#110:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 03:14
    —
Сжатие методом Zip
Code:
a -tzip -ssw -mx5 "%O.7z" @%L


без сжатия 7z
Code:
a -t7z -mx0 -mse -ssw -scsWIN -y -- "%O.7z" @%L


Правильно?

#111:  Author: FlasherLocation: Москва PostPosted: Sat Sep 10, 2016 03:34
    —
Первый по усмотрению. Второй:
Code:
a -t7z -mx0 -ms=off -mhc=off -ssw -scsUTF-16LE -y -- "%O.7z" @%WL
Впрочем, для упаковки тоже универсальные средства имеются (1, 2).

Last edited by Flasher on Sat Sep 10, 2016 07:56; edited 1 time in total

#112:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 03:43
    —
Flasher
Flasher wrote:
a -t7z -mx0 -ms=off mhc=off -ssw -scsUTF-16LE -y -- "%O.7z" @%WL

Ничего не происходит Shocked

#113:  Author: FlasherLocation: Москва PostPosted: Sat Sep 10, 2016 03:50
    —
Kiril__777
А так?:
Code:
a "%O.7z" -mx0 -ms=off -mhc=off -ssw -scsUTF-16LE -y @%WL
Версия 7z.exe последняя?

Last edited by Flasher on Sat Sep 10, 2016 07:56; edited 1 time in total

#114:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 04:00
    —
Flasher
нет, я 9.20 использую

#115:  Author: FlasherLocation: Москва PostPosted: Sat Sep 10, 2016 04:07
    —
Kiril__777
Мы не в чате, заглавные и точки тут не отменялись.
И ничего, полагаю, не мешает перейти на актуальную версию.

Вот кнопка для теста:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\7-Zip\7zG.exe
a "%O.7z" -mx0 -ms=off -ssw -scsUTF-16LE -y @%WL
%COMMANDER_PATH%\Utils\7-Zip\7zG.exe
Упаковать выделенное в 7z-архив с минимальным сжатием

1

#116:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 04:27
    —
Flasher
взял 7zG.exe версии 16.02, работает. Спасибо.
Тогда вопрос, имеет ли смысл заменить во всех кнопках 7z.exe версии 9.20 на новую 7zG.exe и чем они отличаются?

#117:  Author: FlasherLocation: Москва PostPosted: Sat Sep 10, 2016 04:40
    —
Kiril__777
Конечно, имеет. 7zG - это GUI-версия. Т.е. можно наблюдать прогресс в неконсольном окне (в панели задач - проценты). Также можно для неавтоматического случая использовать ключ -ad для вывода диалога опций упаковки. Ещё отличием является невозможность в этой версии при распаковке пропускать запароленные архивы (придётся вводить). Также есть проблемка с незакрытием окна при работе с ISO. Но в остальном вариант более нагляден и юзабилен.

#118:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 06:02
    —
Flasher
а какая тогда разница между
Flasher wrote:
a -t7z -mx0 -ms=off mhc=off -ssw -scsUTF-16LE -y -- "%O.7z" @%WL

и
Flasher wrote:
a "%O.7z" -mx0 -ms=off mhc=off -ssw -scsUTF-16LE -y @%WL

что лучше?

#119:  Author: FlasherLocation: Москва PostPosted: Sat Sep 10, 2016 06:51
    —
Kiril__777
Разница в отсутствии указания формата сохранения и '--' во втором варианте для предотвращения спотыкания на именах с дефисом. В -t7z есть смысл, только при необходимости записать имя с другим раширением или без него. Т.е. в данном случае лучше такой вариант:
Code:
a -mx0 -ms=off -mhc=off -ssw -scsUTF-16LE -y -- "%O.7z" @%WL


Last edited by Flasher on Sat Sep 10, 2016 07:52; edited 1 time in total

#120:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 07:35
    —
Flasher
при таком варианте
Code:
a -mx0 -ms=off mhc=off -ssw -scsUTF-16LE -y -- "%O.7z" @%WL

архив создается с именем "mhc=off.7z" и пишется ошибка что архивируемый файл не найден Shocked

#121:  Author: FlasherLocation: Москва PostPosted: Sat Sep 10, 2016 07:52
    —
Kiril__777
Исправил, случайно дефис пропустил.

#122:  Author: Kiril__777 PostPosted: Sat Sep 10, 2016 08:36
    —
Flasher
Спасибо Smile

#123:  Author: Kiril__777 PostPosted: Thu Sep 22, 2016 18:07
    —
Кнопка сжатия методом Zip
Code:
команда: %comspec% /c start "7-zip сжимает..." /min "%COMMANDER_PATH%\7z\7zG.exe"
параметр: a -tzip -ssw -mx5 "%O.7z" @%L

Работает отлично. Решил перенести ее на другой мой TC и тут стала появляться ошибка

в этой копии ТС все идентично рабочей, даже работают другие кнопки, например
Code:
команда: %comspec% /c start "7-zip сжимает..." /min "%COMMANDER_PATH%\7z\7zG.exe"
параметр: a -t7z -mx -m0=LZMA -mse -ssw -scsWIN -y -- "%O.7z" @%L

Почему ошибка появляется понять не могу, подскажите.
Спасибо

#124:  Author: FlasherLocation: Москва PostPosted: Thu Sep 22, 2016 20:03
    —
Code:
%comspec% /c start "7-zip сжимает..." /min
- лишнее.
-tzip и "%O.7z" не логичны в одном флаконе.
Версии 7z.exe должны соответствовать.

+ См. сюда ещё разок.

#125:  Author: Skif_off PostPosted: Thu Sep 22, 2016 20:04
    —
Kiril__777
7-Zip просит проверить кодировку списка, вы её проверили?
Если используете списки в ANSI, то лучше везде так и писать "-scsWIN", а ещё лучше использовать UTF-8: заменить "-scsWIN" на "-scsUTF-8" и "@%L" на "@%UL".

#126:  Author: FlasherLocation: Москва PostPosted: Thu Sep 22, 2016 20:05
    —
Skif_off wrote:
а ещё лучше использовать UTF-8
Лучше UTF-16.

#127:  Author: Skif_off PostPosted: Thu Sep 22, 2016 20:09
    —
Flasher
Я даже знаю, почему. Но UTF-8 вроде как роднее для 7-Zip +линуксы всякие...

#128:  Author: FlasherLocation: Москва PostPosted: Thu Sep 22, 2016 20:13
    —
Skif_off
Знаю, что знаешь, поэтому и написал.
Роднее/не роднее - это что за критерий? UTF-16 Игорь добавлял по моей просьбе.

#129:  Author: Skif_off PostPosted: Thu Sep 22, 2016 22:34
    —
Flasher
Дефолтная кодировка - UTF-8.

#130:  Author: Kiril__777 PostPosted: Fri Sep 23, 2016 04:12
    —
Flasher
Skif_off
Спасибо, вот при таком параметре зработало
Code:
a -ssw -scsUTF-8 -mx5 "%O.7z" @%UL

#131:  Author: Nick PostPosted: Thu Mar 30, 2017 12:27
    —
Кнопка №1.
Нужна кнопка для 7-zip, чтобы были следующие возможности:
- Указания нескольких расширений (в том числе и двойные).
- Распаковка в структуре файлов и каталогов.
- Удаление архива (только при удачной распаковке).
------------------------------------------------------------------------
Кнопка №2.
Возможность распаковки всех выделенных файлов в отдельные каталоги (по имени архива) в противоположную панель. Также, необходимо, чтобы была поддержка длинных путей...

Кто подскажет такие две кнопки???

#132:  Author: Dimsok PostPosted: Thu Mar 30, 2017 13:11
    —
Quote:
Кнопка №2.


Найти скрипт MultiRun.vbs и изменить к нему путь в кнопке.

Code:
TOTALCMD#BAR#DATA
"c:\Program Files\Total Commander\Utils\WHS\MultiRun.vbs"
01 "%%ProgramFiles%%\7-Zip\7z.exe" x {{%WL}} -o"%T{{%WF}}" -y
%COMMANDER_PATH%\Totalcmd.exe,7
Распаковать архивы в отдельные папки


-1

#133:  Author: addhaloka PostPosted: Thu Mar 30, 2017 17:53
    —
Nick wrote:
Кнопка №2.

Code:
TOTALCMD#BAR#DATA
%ComSpec% /c for /f "delims=" %a in
('type %WF') do "%%COMMANDER_PATH%%\Plugins\WCX\Total7zip\64\7z.exe" x -y "%%a" -o"%T%%~na"
WCMICONS.DLL,31
Распаковать с 7Z выделенные архивы в каталоги с именами архивов  в противоположную панель

1
-1

#134:  Author: FlasherLocation: Москва PostPosted: Thu Mar 30, 2017 19:19
    —
Nick wrote:
Кнопка №1.

Quote:
TOTALCMD#BAR#DATA
%ComSpec% /c for /f "delims=" %# in ('dir
*.html.7z;*.docx.zip;*.xlsx.rar /a-d/b/s') do "%COMMANDER_PATH%\Utils\7-Zip\7z.exe" x "%#" -o"%~p#" -y&&del "%#"

Utils\7-Zip\7zG.exe
Распаковать
.HTML.7Z/.DOCX.ZIP/.XLXS.RAR в структуре|каталога активной панели c последующим удалением

1
Либо:
Quote:
TOTALCMD#BAR#DATA
%ComSpec% /c for /r %# in (.) do for %i in (
html.7z docx.zip xlsx.rar) do "%COMMANDER_PATH%\Utils\7-Zip\7z.exe" x "%~f#\*.%i" -o"%~f#" -y&&del "%~f#\*.%i"

Utils\7-Zip\7zG.exe
Распаковать
.HTML.7Z/.DOCX.ZIP/.XLXS.RAR в структуре|каталога активной панели c последующим удалением

1

#135:  Author: Nick PostPosted: Wed Apr 05, 2017 17:54
    —
Dimsok
Я именно скриптом "MultiRun.vbs" и пользовался. Но он не работает с длинными путями и у меня вообще как-то он нестабильно работает.
addhaloka
Спасибо, но, к сожалению, с длинными путями не работает.
Flasher
Оба варианта работают, но с длинными путями опять же - не работают. Какой вариант считается более предпочтительным?
Второй вариант работает только с двойными расширениями, т.е. расширения типа ".z"; ".zipx"; ".gzip" и т.п. не понимает...

Можно ли сделать, чтобы и длинные пути работали тоже?

#136:  Author: addhaloka PostPosted: Wed Apr 05, 2017 19:22
    —
Nick wrote:
Можно ли сделать, чтобы и длинные пути работали тоже?

Наверно, нельзя - если только какую-то обёртку для этого написать, или распаковывать по одному - так работает и с длинными путями.

#137:  Author: FlasherLocation: Москва PostPosted: Wed Apr 05, 2017 19:56
    —
Nick
Ну, я выполнил исходные условия для кнопки. Про длинные пути там ни слова. Wink cmd ругается на UNC, а зашортить длинную папку не получится, только файлы.
Второй вариант работает с любой комбинацией расширений, только там они перечисляются, как нетрудно заметить, без точек спереди.
Что касается предпочтения, то первый распаковывает, проверяет и удаляет пофайлово, а второй группами (прибавка скорости в ущерб более годному удалению).

В кнопке addhaloka я бы добавил ..."%P%%a"...

#138:  Author: addhaloka PostPosted: Thu Apr 06, 2017 01:06
    —
Flasher wrote:
В кнопке addhaloka я бы добавил ..."%P%%a"...

Хех, работает. Спасибо!

#139:  Author: FlasherLocation: Москва PostPosted: Thu Apr 06, 2017 01:10
    —
addhaloka
Да не за что. Та же петрушка по логике с %WL вместо %WF.

#140:  Author: Iori PostPosted: Sat Jun 17, 2017 02:53
    —
Есть такая кнопка.

Code:

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Packers\7zg.exe"
a -t7z -mx -myx=9 -m0=LZMA2 -ssw -mqs=on -scsWIN -y -- %N.7z "@%L"
%COMMANDER_PATH%\Icons\7zip_add.ico
Add all to 7-Zip (Full Path) - Pack FOLDERS (Ultra Compression)

1
-1


Обновил 7зип до 17.00 beta, теперь кнопка перестала работать.
7зип выдаёт ошибку.

@С:
The filename, directory name or volume syntax label is incorrect.

#141:  Author: addhaloka PostPosted: Sun Jun 18, 2017 13:42
    —
Iori
Если убрать -- из параметров, то работает.
Но вот что это, баг или фича? Confused

#142:  Author: Iori PostPosted: Mon Jun 19, 2017 19:21
    —
addhaloka

Спасибо. Баг тогда скорее всего.

#143:  Author: FlasherLocation: Москва PostPosted: Thu Jun 22, 2017 18:00
    —
Iori wrote:
7зип выдаёт ошибку.
А у меня не выдаёт. Просто пустой архив создаётся.
Iori wrote:
Ultra Compression
Где же тут Ultra, когда mx пустует?
Не пользуешься?

#144:  Author: Iori PostPosted: Thu Jun 22, 2017 19:14
    —
Flasher,
Quote:
А у меня не выдаёт. Просто пустой архив создаётся.

У меня выдаёт ошибку, а потом уже создаётся пустой архив.

Quote:
Где же тут Ultra, когда mx пустует?

Я где то читал что -mx и -mx=9 это одно и тоже.
Проверь Very Happy

Quote:
Не пользуешься?

Нет.

#145:  Author: FlasherLocation: Москва PostPosted: Thu Jun 22, 2017 19:58
    —
Iori wrote:
У меня выдаёт ошибку, а потом уже создаётся пустой архив.
Точно. Я с первого раза не обратил внимания. Напишешь?
Iori wrote:
Проверь
Вообще отличия в некоторых ситуациях есть, но на размере это почти не сказывается.

#146:  Author: Iori PostPosted: Thu Jun 22, 2017 23:38
    —
Flasher

Перед тем как писать Игорю, надо проверить если эта команда
Code:
a -t7z -mx -myx=9 -m0=LZMA2 -ssw -mqs=on -scsWIN -y --
работает без кнопки. То-есть в отсутствие тоталских параметров.

Я может ошибаюсь, но когда я проверял эту команду, у меня она вроде работала.

#147:  Author: FlasherLocation: Москва PostPosted: Fri Jun 23, 2017 10:18
    —
Iori
Речь идёт о том, что @ перестаёт нести свою функцию чтения списка после указания двойного дефиса, чего ранее не было. Тут Тотал ни при чём.

#148:  Author: Iori PostPosted: Sat Jun 24, 2017 00:14
    —
Flasher

Может лучше ты напишешь Игорю. У меня там нет акаунта и объяснить проблему ты сможешь лучше меня. Embarassed

#149:  Author: FlasherLocation: Москва PostPosted: Sat Jun 24, 2017 01:09
    —
Iori
ОК. Написал.

#150:  Author: addhaloka PostPosted: Sat Jun 24, 2017 07:36
    —
Хм, а там уже была речь, вроде о схожей проблеме:
 Hidden text

#151:  Author: FlasherLocation: Москва PostPosted: Sat Jun 24, 2017 08:07
    —
addhaloka
Ясно. Тогда ждём исправления.

#152:  Author: addhaloka PostPosted: Tue Aug 29, 2017 00:14
    —
Flasher
Вышла 17.01 - ошибка не исправлена. Evil or Very Mad Хотя, может я как-то не так проверял.

#153:  Author: FlasherLocation: Москва PostPosted: Wed Aug 30, 2017 05:41
    —
addhaloka
Отписался. А в ответ получил ту же рекомендацию... Confused

#154:  Author: FlasherLocation: Москва PostPosted: Thu Aug 31, 2017 22:12
    —
addhaloka
Похоже, что другого решения не будет, т. к. нужно одновременно паковать файлы с наличием - и @ спереди.

#155:  Author: addhaloka PostPosted: Sat Sep 02, 2017 11:30
    —
Flasher wrote:
А в ответ получил ту же рекомендацию...
Quote:
Похоже, что другого решения не будет

Ясно. Значит, исправления не будет, хотя думал, что это обещание исправить:
Quote:
You can get @filename as name of archive or name of file in archive.
So I've disabled @ parsing after -- in 17.00.
But commands for FAR still use it after --.
It's my error.
the problem is more complicated.
I'll think about best way to fix it.

Может, в будущих версиях? Хотя гадать смысла нет...

#156:  Author: Nick PostPosted: Mon Sep 04, 2017 13:57
    —
Если для WinRAR не сделать тестирование сразу всех архивов (ссылка), тогда как можно протестировать все выбранные архивы через 7zG?

#157:  Author: FlasherLocation: Москва PostPosted: Wed Sep 06, 2017 01:36
    —
addhaloka
Это обещание подумать, а не исправить. После раздумий по указанной мной причине другого решения не нашлось.

Nick
Не заметил.
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\7-zip\7zG.exe
t -scsUTF-16LE -an -ai@%WL -y
Utils\7-zip\7z.dll,13
Протестировать выбранные в активной панели архивы

#158:  Author: LonerDLocation: Макеевка PostPosted: Fri Sep 14, 2018 15:16
    —
AutoHotkey скрипт для распаковки выделенных файлов с помощью архиватора 7-Zip (всё в текущий каталог или же для каждого архива будет создаваться отдельный каталог с именем файла).
Предусмотрена проверка на наличие точки в конце каталога куда производится распаковка.
Можно пытаться распаковывать как все файлы (архиватор будет выводить стандартное окно ошибки если не может осилить распаковку), так и только файлов из списка поддерживаемых форматов (список взят из справки 7-Zip).

Ссылка на скрипт.

Примерный вариант параметров
%WL "%%commander_path%%\Plugins\arc\7-Zip\7zG.exe" 1 1 u
Unpack selected archives with 7-Zip

%WL "%%commander_path%%\Plugins\arc\7-Zip\7zG.exe" 0 1 u
Unpack selected archives with 7-Zip to current directory


Code:

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Total Commander DreamLair                        ;
; Script: Unpack Selected Archives with 7-Zip      ;
; Script version: 1.0 (2018.09.14)                 ;
; Script author: LonerD                            ;
; Site: https://dreamlair.net                      ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Parameters:                                      ;
;  1) %WL (required)                               ;
;  2) Path to archiver (required)                  ;
; ("%%commander_path%%\Plugins\arc\7-Zip\7zG.exe") ;
;  3) Unpack to subdir (1|0)                       ;
;  4) Unpack only supported extensions (1|0)       ;
;  5) Mode (a|s|u - overwrite all|skip|rename)     ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;

#NoEnv
#NoTrayIcon
#SingleInstance ignore

if not ( WinExist("ahk_class TTOTAL_CMD") || WinActive("ahk_class TTOTAL_CMD") )
  ExitApp

Filelist = %1%
7ZipPath = %2%
ToSubdir = %3%
Supported = %4%
Overwrite = %5%

if 0 < 5
  Overwrite = u
if 0 < 4
  Supported = 1
if 0 < 3
  ToSubdir := 1
if 0 < 2
  ExitApp

EnvGet, commander_path, commander_path
Transform, 7ZipPath, Deref, % 7ZipPath
7ZipPath := ExpandEnvVars (7ZipPath)

if Overwrite not in a,s,u
  Overwrite:= s
if Supported not in 0,1
  Supported:= 1

if ( Supported = "1" )
  SupportedExt := "7z,7zip,7-zip,exe,bz2,bzip2,tbz2,tbz,gz,gzip,tgz,tar,wim,swm,esd,xz,txz,zip,zipx,jar,apk,xpi,odt,ods,docx,xlsx,epub,apm,ar,a,deb,lib,arj,cab,chm,chw,chi,chq,msi,msp,doc,xls,ppt,cpio,cramfs,dmg,ext,ext2,ext3,ext4,fat,hfs,hfsx,hxs,hxi,hxr,hxq,hxw,lit,ihex,iso,img,lha,lzh,lzma,mbr,mslz,mub,nsis,ntfs,rar,r00,rpm,ppmd,qcow,qcow2,qcow2c,squashfs,udf,scap,uefif,vdi,vhd,vmdk,xar,pkg,z,taz"

Loop, Read, % Filelist
{
  TargetFile = %A_LoopReadLine%
  SplitPath, TargetFile, FileName, FileDir, FileExt, FileNameNoExt

  if not InStr(FileExist(TargetFile), "D")
  {
    if ( ToSubdir = "0" )
      TargetPath := FileDir . "\"
      else
        TargetPath := FileDir . "\" . FileNameNoExt . "\"

     While InStr(TargetPath, ".\")
       TargetPath := StrReplace(TargetPath, ".\", "\")

      if ( Supported = "0" )
      RunWait, %7ZipPath% x -scsUTF-8 -ao%Overwrite% -o"%TargetPath%" -- "%TargetFile%"
      else if FileExt in % SupportedExt
        RunWait, %7ZipPath% x -scsUTF-8 -ao%Overwrite% -o"%TargetPath%" -- "%TargetFile%"
  }
}

ExitApp

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
ExpandEnvVars(ppath)
{
  VarSetCapacity(Dest, 2000)
  DllCall("ExpandEnvironmentStrings", Str, ppath, Str, Dest, Int, 1998)
  Return, Dest
}
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;

#159:  Author: FlasherLocation: Москва PostPosted: Fri Sep 14, 2018 16:25
    —
LonerD
Что-то тебя не в тот раздел занесло. Мухи (кнопки) отдельно, котлеты (скрипты) отдельно. Мой усовершенствованный распаковщик пропустил, видимо? Wink

#160:  Author: LonerDLocation: Макеевка PostPosted: Wed Mar 06, 2019 20:13
    —
Flasher
Имеется команда
Code:
[em_7Zip_crypt]
cmd=%commander_path%\Plugins\exe\AskParam.exe
param=/c"7-Zip Archive with Date" /u"-mx9 -m0=LZMA2 -mse -ssw -scsUTF-16LE -y" /t"-mx9 -m0=LZMA -mse -ssw -scsUTF-16LE -y" /p"Compression Parameters" /u"pass" /p"Password" /s0 %%comspec%% /c setlocal & for /f "tokens=1-6 delims=:., " %%%%a in ('echo %%%%date%%%% %%%%time:~0,8%%%%') do "%%%%commander_path%%%%\Plugins\arc\7-Zip\7zG.exe" a -t7z %%1 -p%%2 -mhe "%P%N [%%%%c.%%%%b.%%%%a_%%%%d.%%%%e.%%%%f].7z" ""%P%N""


Подскажи, пожалуйста, что в ней можно исправить/оптимизировать, заменить %P%N на @%WL и добавить отображение даты в имени в виде [2019.03.06-19.00.00] ?


Last edited by LonerD on Thu Mar 07, 2019 03:21; edited 3 times in total

#161:  Author: FlasherLocation: Москва PostPosted: Thu Mar 07, 2019 02:19
    —
LonerD
Есть смысл подвязать этот скрипт. Если устроит в части даты, здесь подскажу что исправить в 37 строке для указанного формата (на cmd c учётом региональных настроек это исполнять нецелесообразно).

#162:  Author: LonerDLocation: Макеевка PostPosted: Thu Mar 07, 2019 03:22
    —
Flasher
Скрипт не так интересен. Пытаюсь понять где ошибка в дате. Подправил запись команды, вроде раньше в таком виде работала, а сейчас галиматья вместо даты... И при замене на @%WL если выбрать несколько файлов - выбивается ошибка (список удаляется до того, как архиватор отработает).

#163:  Author: FlasherLocation: Москва PostPosted: Thu Mar 07, 2019 03:35
    —
LonerD
Не так интересен по какой причине? При том, что он учитывает список исключений, добавляет счётчик в имя при необходимости и работает длинными (260+) путями.

Про дату я уже написал. Изменишь формат в региональных — и (без использования громоздких костылей) всё полетит к чертям. На PowerShell сделать ещё можно.

И в твоём случае не было смысла задействовать for:
Code:
for /f "tokens=1-6 delims=:., " %a in ('echo %date% %time:~0,8%') do echo %c.%b.%a_%d.%e.%f
, когда есть вариант без оного:
Code:
echo %date:~6,4%.%date:~3,2%.%date:~,2%_%time:~,2%.%time:~3,2%.%time:~6,2%

Также не понял, что у тебя в коде делает setlocal и двойное указание %P%N без кавычек и с ними, ещё при том, что по синтаксису имя архива указывается после команды a.

#164:  Author: LonerDLocation: Макеевка PostPosted: Thu Mar 07, 2019 15:47
    —
Flasher
Flasher wrote:
Не так интересен по какой причине?

Скрипт я и сам смогу сделать (не такой масштабный и изящный, но решающий проблему). Но ради одной не особо используемой команды хотелось "элегантное" решение.

Flasher wrote:
Также не понял, что у тебя в коде

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

Flasher wrote:
Изменишь формат в региональных — и (без использования громоздких костылей) всё полетит к чертям.

Теперь понял, коварно задумано в системе. Спасибо. Тогда вопрос снимается.

#165:  Author: FlasherLocation: Москва PostPosted: Thu Mar 07, 2019 16:08
    —
LonerD wrote:
Теперь понял, коварно задумано в системе.
Ну, да. Иноязычные вариации тут и далее как-то разбирали. В батнике я обычно временно ставил dd.MM.yyyy в HKCU\Control Panel\International\sShortDate, т.к. это куда быстрее, чем парсинг wmic os get localdatetime.

Хотя, с другой стороны, с ним будет короче:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\exe\AskParam.exe /c"7-Zip Archive with Date" /u"LZMA2" /t"LZMA" /p"Compression Parameters" /u"pass" /p"Password" /s0 %ComSpec% /v:on /q/c "(for /f "skip=1" %%# in ('wmic os get localdatetime')
do >nul set /a c+=1 &set !c!=%%%%~n#)&&"!COMMANDER_PATH!\Plugins\arc\7-Zip\7z.exe" a ""%N" [!1:~,4!.!1:~4,2!.!1:~6,2!_!1:~8,2!.!1:~10,2!.!1:~12!].7z" -m0=%%1 -p%%2 -mx -mhe -ssw -y -scsUTF-16LE @%WL"
Plugins\arc\7-Zip\7z.dll
Упаковка выбранного в "<CurrentName> [yyyy.MM.dd_HH.mm.ss].7z" с выбором алгоритма LZMA/2
Но тут есть один неприятный момент с несвоевременным нестабильным слетанием файла-списка, вероятно, по причине завершения исходного процесса (AskParam в данном случае). С этим, если что, не ко мне, а к Гислеру и MVV.

#166:  Author: rediffusion PostPosted: Fri Mar 08, 2019 20:24
    —
Idea Хочу параметр для 7-zip
Распаковка аржива в "Другую Панель" - но только не именем под курсором а чтоб просто фалы извлеклись все из архива!
Заранее спасибо!

#167:  Author: FlasherLocation: Москва PostPosted: Sat Mar 09, 2019 07:01
    —
rediffusion
Можно не только архива, но и всех выбранных:
x -scsUTF-16LE -an -ai@%WL -o"%T" -y

#168:  Author: LonerDLocation: Макеевка PostPosted: Sat Mar 09, 2019 18:38
    —
Flasher
Спасибо. Дата заработала. А из списка файлов успевают обработаться всего один файл (иногда два-три если небольшие).

#169:  Author: FlasherLocation: Москва PostPosted: Sat Mar 09, 2019 18:42
    —
LonerD
Дело не в размере. Я же снизу указал на причину. Может сработать и с куда большим числом, но не с первого раза. Как вариант, можно временно делать копию списка.

#170:  Author: rediffusion PostPosted: Sat Mar 09, 2019 19:29
    —
А такой штуки нет?
Распаковка:
1. %COMMANDER_DRIVE%\Archives (то есть на диск C:/ уже в существующую папку "Archives"). Если в корне архива только одна папка или один файл, то распаковывать всё это как есть.
2. Eсли же там несколько папок или файлов, то создать папку с именем архива для распаковки уже в нее).
3. И чтоб по завершении был переход в эту самую папку "Archives" (папка чтоб открылась в новой вкладке "Total Commander".

P.S.
В чём разница этих архиваторов/расширений:
.7z; .zip; .rar; bzip;
и эти - wim; Total7zip; Imagine; CatalogMaker; CopyTree
...не я как бы гуглил и всё такое. Просто от опытного совет нужен. Слышал bzip - типа хороший?

#171:  Author: FlasherLocation: Москва PostPosted: Sat Mar 09, 2019 19:54
    —
rediffusion
На такую штуку ссылки сами привели в ЛС. Что мне ещё добавить?
Определитесь, где диалог ведётся. Для начала спецом для новичков сверху подфорума прикреплена обязательная к прочтению памятка. И данной темы она не касается. Скрипты обсуждаются в своих темах.

Разница типов архивов в их качественных особенностях: скорость упаковки/распаковки/чтения, мощность сжатия, поддержка юникодных имён, опциональность, применение различных алгоритмов для разных типов файлов, режим непрерывности и т. д.
zip, 7z и rar — самые популярные типы, последние — благодаря постоянному развитию. bzip/bzip2/gz больше используются на nix-системах.
Самым лучшим мог бы быть NanoZip, если бы автор его не забросил, ибо многолетный лидер по соотношению скорость/сила сжатия.

P.S.: И не следует здесь в очередной раз оверквотить.

#172:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Mar 09, 2019 21:46
    —
rediffusion
Ненужное цитирование удалено. И прекращайте оффтоп. Эта тема — мягко говоря, не шпаргалка по архиваторам и архиваторным плагинам. Замечание за нарушение правил форума.

#173:  Author: rediffusion PostPosted: Sat Mar 09, 2019 23:14
    —
Flasher
Avada

Окей!

Надеюсь это не оффтоп в загловке написано "Кнопки для 7-Zip". Задам вопрос...

Тут перечитал и нашёл вот такой параметр:
Code:
a -t7z -md=192m -mx -myx=9 -m0=LZMA2 -ssw -mqs=on -scsUTF-16LE -y -i"@%WL" -- "%T%O.7z"

Понравился тем что хорошо сжимает.

У меня есть кнопки ([АП] - Активная Панель):
1) "Упаковать в 7z – именем объекта под курсором в [АП]" - с таким параметром:
Code:
a %O.7z %S

2) Упаковать в 7z [АП] (создав отдельные архивы для каждого) - с таким параметром:
Code:
arwcx="%p%O"||7z||1


...хочу поменять свои параметры чтоб было и там и там такая штука. Но не знаю что вписать в строку (что там менять). Пробовал и так и сяк не получается. Знаю что %T сжимает в Другую Панель. Свои параметры пытался впихнуть не робит:

1) "Упаковать в 7z – именем объекта под курсором в [АП]" - с таким параметром:
Code:
a -t7z -md=192m -mx -myx=9 -m0=LZMA2 -ssw -mqs=on -scsUTF-16LE -y -i"@%WL" -- "%T%O.7z"

2) Упаковать в 7z [АП] (создав отдельные архивы для каждого) - с таким параметром:
Code:
a -t7z -md=192m -mx -myx=9 -m0=LZMA2 -ssw -mqs=on -scsUTF-16LE -y -i"@%WL" -- "%T%O.7z"


Last edited by rediffusion on Mon Mar 11, 2019 11:42; edited 1 time in total

#174:  Author: FlasherLocation: Москва PostPosted: Sun Mar 10, 2019 10:04
    —
rediffusion
Не все вопросы имеет смысл решать кнопками.

#175:  Author: rediffusion PostPosted: Sun Mar 10, 2019 10:56
    —
Ой это не робит и все те кто читает топик знайте!
 Hidden text

Дело в том что ну да как бы сжимает хорошо! Но! Если файл большой например КИНО, вылетает ошибка:
 Hidden text


Last edited by rediffusion on Mon Mar 11, 2019 11:39; edited 5 times in total

#176:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Mar 10, 2019 18:31
    —
rediffusion
Про овеквотинг предупреждение уже было. Указание собственного ника в цитате недопустимо. И прекращайте оформлять ответы со строчными буквами после начальных многоточий.

#177:  Author: FlasherLocation: Москва PostPosted: Mon Mar 11, 2019 08:57
    —
rediffusion
Какой смысл в цитате моего сообщения (тем более предыдущего), если на него даже ответ отсутствует?

А про КИНО то ещё кино, когда не приведён конкретный размер файла, его полное имя, а также версия и битность упаковщика.

#178:  Author: rediffusion PostPosted: Mon Mar 11, 2019 19:53
    —
Flasher wrote:

А про КИНО то ещё кино, когда не приведён конкретный размер файла, его полное имя, а также версия и битность упаковщика.

1.
 Скриншот

2.
Quote:
The.Nutcracker.and.the.Four.RealmsBDRip1080p.mkv

3.
7-Zip
File version: 19.00
Igor Pavlov


Last edited by rediffusion on Tue Mar 12, 2019 22:43; edited 3 times in total

#179:  Author: FlasherLocation: Москва PostPosted: Mon Mar 11, 2019 21:21
    —
... -m0=LZMA2:c26 ...

#180:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Mar 12, 2019 07:06
    —
rediffusion
Про оверквотинг было уже несколько предупреждений. Сколько можно?! Забудьте о существовании кнопки "цитата" справа — вы не умеете ей правильно пользоваться. Очередное замечание.

#181:  Author: krmit PostPosted: Fri Nov 15, 2019 04:08
    —
Здравствуйте.
Необходима кнопка для распаковывки определённого архивф из списка в активную панель. Список (архивы 7z с полными путями, желательно внутри самого скрипта и с возможностью добавления/удаления позиций) пронумерован, номер необходимого архива передаётся как параметр.
Спасибо.

#182:  Author: FlasherLocation: Москва PostPosted: Fri Nov 15, 2019 12:34
    —
krmit
А объяснять ранее запрошенные нюансы вы отказываетесь?
Flasher wrote:
Зачем нумеровать список, куда и для чего передавать параметр с номером и удалять какие-то позиции

#183:  Author: krmit PostPosted: Thu Nov 28, 2019 20:40
    —
Flasher
Извините, что долго не отвечал.
Есть набор архивов (утилиты для работы с различными форматами файлов, в основном консольные и требующие распаковки рядом с файлом для работы). Необходима кнопка для быстрой распаковки нужной утилиты в указанное место без залезания каждый раз в каталог и распаковки вручную.
Архивов больше пятидесяти, плюс что-то периодически добавляется/удаляется/изменяется. Поэтому я и предложил сделать список, где каждому номеру соответствует полный путь к определённому архиву, ибо список править проще (и в параметре кнопки проще указать цифру, чем длиннющий путь). Если правильнее/проще будет указывать в кнопке именно имя архива с путём - ладно. Лишь бы работало.

#184:  Author: FlasherLocation: Москва PostPosted: Thu Nov 28, 2019 21:21
    —
krmit wrote:
в указанное место без залезания каждый раз в каталог
Сие условие противоречит исходному:
krmit wrote:
в активную панель.
Иначе прямая связь с ТС пропадает.

И если вы в кнопке сразу задаёте путь к архиву, то это всяко проще и быстрее, чем дополнительно залезать в список и выискивать путь по номеру. Другое дело, если бы вам надо было распаковывать по группе некоторых номеров, перечисленных, допустим, через запятую.

#185:  Author: krmit PostPosted: Mon Dec 02, 2019 06:09
    —
Flasher
Под "без залезания в каталог" я имел в виду открывание в панели пути к архиву и выполнение распаковки в противоположную панель. Нужно, чтобы по нажатию кнопки необходимый архив распаковывался "под курсор".
Распаковки групп не будет, только отдельные архивы. Походу, действительно проще сделать универсальную кнопку и заменять путь к архиву.

#186:  Author: FlasherLocation: Москва PostPosted: Thu Dec 12, 2019 21:04
    —
krmit
'Открывание пути к архиву', 'распаковывался "под курсор"' — это что-то за пределами нормальной терминалогии.
Если нужно подкурсорный элемент распаковывать, то используйте %V вместо пути в поле параметров. С комстрокой 7-zip'а, полагаю, справитесь.

#187:  Author: Nick PostPosted: Mon Jul 11, 2022 13:57
    —
Здравствуйте!

Подскажите следующую кнопку для "7z.exe", необходимо чтобы было:
- Архивирование всех выделенных файлов и папок в отдельные архивы по именам папок и файлов.
- При наличии отдельных файлов, чтобы они упаковывались как <Имя>.<расширение>.7z; например: "Документы.docx.7z"
- Сначала тестирование всех файлов в архиве и только потом удаление исходных файлов (!!!).
- Если какой-то архив с таким же названием уже существует, то задать вопрос о его перезаписи (!!!)
- Конечно же возможны длинные пути и спецсимволы...


Например (выделено сразу множество папок и файлов):
Новая папка 1 --> Новая папка 1.7z
Новая папка 2 --> Новая папка 2.7z
Документ.docx --> Документ.docx.7z
Таблица.xlsx --> Таблица.xlsx.7z
И т.д.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group