Кнопки для 7-Zip
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3 ... 10, 11, 12, 13  Next  :| |:
Total Commander -> Автоматизация Total Commander

#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.



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


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

Goto page Previous  1, 2, 3 ... 10, 11, 12, 13  Next  :| |:
Page 11 of 13

Powered by phpBB © 2001, 2005 phpBB Group