View previous topic :: View next topic |
Author |
Message |
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Fri Aug 07, 2015 21:07 Post subject: Реархивация |
|
|
Кто-нибудь покажите пример кнопки, которая должна будет осуществлять 3 действия:разархивирование упакованных файлов, архивирование их с максимально-возможным сжатием, удаление распахованных файлов. Любыми средствами, хотя подозреваю, что на бат опять будет проблема с уникодными именами. Для zip или rar. Чтобы упаковка происходила с сохранением структуры упакованных файлов и папок, в противоположную панель с именем исходного архива |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Aug 09, 2015 11:14 Post subject: |
|
|
Зачем чего-то распаковывать, если в WinRAR есть преобразование? Галок наставил, сохранил, потом с параметрами cv -y и маской отработал (-r рекурсивно). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Mon Aug 10, 2015 13:11 Post subject: |
|
|
А как можно сконвертировать rar и zip в 7z? Лучше ужимается им. Желательно одной кнопочкой |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Aug 10, 2015 14:33 Post subject: |
|
|
В данном случае никак. Тут есть только rar5 как более ёмкий.
По поводу лучше вопрос спорный. Это далеко не WinRK/PAQ8 и даже не nanozip. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Mon Aug 10, 2015 15:31 Post subject: |
|
|
Ну можно ж батник какой-нибудь написать, чтоб разархивировал рары, а потом через 7-zip переархивировал. Нашёл какой-то готовый в сети, только он не очень работает. А программа PeaZip тоже непонятно как работает |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Thu Jan 19, 2017 15:49 Post subject: |
|
|
Пользуюсь такой кнопкой:
Code: | TOTALCMD#BAR#DATA
%ComSpec% /c for /f "delims=" %# in
('type %WF') do "c:\Program Files\7-Zip\7z.exe" x "%%#" -o%%tmp%%\Rearch && "c:\Program Files\7-Zip\7z.exe" a -mx=9 "%T%%~n#.7z" %%tmp%%\Rearch\* && rd /s /q %%tmp%%\Rearch
%COMMANDER_PATH%\Totalcmd.exe,8
Rearchivate files to 7z
1
-1
|
По завершении использую скрипт для переноса времени модификации со старого архива на новый.
Flasher, можно автоматизировать скриптом эти две задачи? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jan 19, 2017 21:28 Post subject: |
|
|
Пробуй:
Code: | '•••••••••••••••••••••••••• VBS •••••••••••••••••••••••••••
' Назначение: Преобразование типов выбранных архивов
' с сохранением даты модификации в новых
' Условие: Наличие инсталляции системного аддона TC4Shell
' Страница загрузки: http://www.tc4shell.com/ru/download/
' Параметры: %WL "<путь назначения>" <новое расширение>
' Необязат.: "<параметры упаковки>" <удалять исходники: 1>
' Примеры: %WL "%P" 7z "-mx9 -m0=LZMA2:fb273 -m1=LZMA2:lc4"
' %WL "%T" zip "-mx9 -mm=Deflate -mfb=258 -mcu=on"
' %WL "%P" exe "-sfx7z.sfx -mx9" 1
'••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Option Explicit: Dim C, Par, Del, List, Trg, ExtN, FSO, ShA
'••••••••••••••••• Путь к утилите 7z.exe ••••••••••••••••••
Const Z7 = """%COMMANDER_PATH%\Utils\7-zip\7z.exe"""
'••••••••••••••••••••••••••••••••••••• Автор: Flasher © •••
Const Title = " Преобразование типов выбранных архивов "
With WSH.Arguments : C = .Count : Par = " -sdel"
Select Case True : Case C = 0 WSH.Quit
Case C < 3 MsgBox " Укажите хотя бы 3 параметра!", 4144, Title : WSH.Quit
Case C > 3 Par = .Item(3) & Par: If C = 5 Then Del = .Item(4)
End Select : List = .Item(0) : Trg = .Item(1) : ExtN = .Item(2)
End With : Dim Exts: Exts = " 7Z | 7ZIP | EXE | GZ2 | GZIP2 | SWM | WIM "&_
"| ZIPX " & vbCr & " ZIP | ODS | TAR | JAR | DOCX | ODT | XLSX | XPI | EPUB"
If InStr(Exts & " ", " " & Ucase(ExtN) & " ") = 0 Then _
MsgBox "Указанное расширение """ & ExtN & """ не поддерживается!" &_
vbCr & vbCr & "Список поддерживаемых расширений:" &_
vbCr & Exts, 4144, Title : WSH.Quit
Dim WSS, Reg, Tmp, Temp, F, Ext, Arch, Items, NN, NA
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ShA = CreateObject("Shell.Application")
Set WSS = CreateObject("WScript.Shell")
Set Reg = New Regexp : Dim OS, PassW, Enc, EnCrypt, T, P : OS = WSS._
RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion")
Reg.IgnoreCase = True: Reg.Pattern = "^(001|7z(|ip)|a|apm|arj?|bz(|ip)2|" &_
"cab|cpio|ch[iqmw]|cramfs|deb|dmg|docx?|e(sd|pub|xe|xt[234]?)|fat|gz(|ip" &_
")|hfsx?|hx[sirqw]|ihex|img|iso|jar|li[bt]|l(zh|ma)|lha|mbr|ms(i|lz|sp)|" &_
"mub|n(si|tf)s|od[st]|qcow(|2c?)|r00|rar|rpm|pkg|ppmd|ppt|squashfs|scap|" &_
"swm|t[agx]z|tar|tbz2?|u(d|efi)f|vdi|vhd|vmdk|wim|x(ar|lsx?|pi|z)|z|zipx?)$"
Tmp = ShA.NameSpace(WSS.Environment("Process")("TEMP")).Self.Path & "\"
Temp = Tmp & FSO.GetBaseName(FSO.GetTempName) : FSO.CreateFolder Temp
With FSO.OpenTextFile(List,,,-1)
Do : F = .ReadLine : Ext = FSO.GetExtensionName(F)
If FSO.FileExists(F) And Ext <> ExtN And Reg.Test(Ext) Then
Set Arch = ShA.NameSpace(F)
If Arch.Self.IsFolder Then
Set Items = Arch.Items : Items.Filter 73952, "*" : PassW = Chr(0)
NN = FSO.GetBaseName(F) & "." & ExtN : NA = FSO.BuildPath(Trg, NN)
Enc = Len(Arch.Self.ExtendedProperty("System.IsEncrypted"))
If Enc And InStr("|7z|7zip|gz|gzip|", "|" & Ext & "|") Then _
EnCrypt = " -mhe" Else EnCrypt = ""
If Not FSO.FileExists(NA) And (Items.Count Or Enc) Then
If OS <= "5.1" Or Enc Then T = 8192 Else T = (_
CLng(Items.Item(0).ExtendedProperty("System.SFGAOFlags"))And 8192)
If T = 8192 Then GetPass F, Passw, "", Enc Else _
WSS.Run Z7 & " x """ & F & """ -o""" & Temp & """ -y -p", 0, True
If PassW <> "" Then
P = Par: If PassW <> Chr(0) Then P = Par & " -p" & PassW & EnCrypt
WSS.Run Z7 & " a """ & NA & """ """ & Temp & "\*"" " & P, 0, True
If FSO.FileExists(NA) Then ShA.NameSpace(Trg).ParseName(NN)._
ModifyDate = FSO.GetFile(Arch.Self.Path).DateLastModified :_
C = 0 : If Del = 1 Then FSO.DeleteFile F, 1
End If
End If
End If
End If
Loop Until .AtEndOfStream : .Close
End With : FSO.DeleteFolder Temp : If C = 0 Then C = 24 : NA = "Выполнено!"_
Else C = 12 : NA = "Нет подходящих архивов!"
If FSO.FolderExists(Tmp & "TC4Shell") Then FSO.DeleteFolder Tmp & "TC4Shell"
WSS.Popup Space(C) & NA, 5, Title, 4160
Sub GetPass(Arc, P, Text, Num)
If OS > "5.1" Or Num Or P <> Chr(0) Then _
P = InputBox(vbCr & "Архив: """ & Arc & """" & vbCr & vbCr &_
Text & vbCr & vbCr & "Введите пароль:", " " & Title, P)
If P <> Chr(0) Then Text = Space(40) & "Пароль неверен!"
If Len(P) Then _
WSS.Run Z7 & " x """ & Arc & """ -o""" & Temp & """ -y -p" & P, 0, True :_
If FSO.GetFolder(Temp).Size = 0 Then GetPass Arc, P, Text, 1
End Sub |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Wed Jan 25, 2017 20:26; edited 23 times in total |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Thu Jan 19, 2017 22:08 Post subject: |
|
|
Как сделать упаковку в противоположную панель?
Можно, чтобы папки в упакованном архиве имели оригинальную дату? С кнопкой так получается.
А что, с LZMA2 ты замечал разницу? Я сравнивал, хоть бы на килобайт чем-то отличалось. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jan 20, 2017 09:52 Post subject: |
|
|
См. параметры и проверяй.
Если бы не замечал, то не писал бы об этом в примечании.
Попробуй на текстовых, например.
Add: Слегка оптимизировал. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Fri Jan 20, 2017 16:11 Post subject: |
|
|
Всё выполняется, но в конце появляется ошибка:
Line:60
Char:37
Error:Path not found
Добавлено спустя 3 минуты:
%WL "%T" 7z "-mx=9"
Добавлено спустя 9 минут:
Те же параметры но с "1" архив-источник не удаляет.
Добавлено спустя 8 минут:
И ещё c архивами 7z не работает. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jan 20, 2017 16:34 Post subject: |
|
|
У тебя точно последняя редакция?
Dimsok wrote: | Те же параметры но с "1" архив-источник не удаляет. | А, сперва другой метод был, кое-что забыл учесть. Исправлю после того, как с первым багом разберёмся.
Dimsok wrote: | И ещё c архивами 7z не работает. | В смысле? Я в большей степени на них и тестировал. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Fri Jan 20, 2017 16:44 Post subject: |
|
|
С последней Line 60 Char 2
C 7z тут пишет "нет подходящих архивов". |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jan 20, 2017 16:54 Post subject: |
|
|
Dimsok wrote: | С последней Line 60 Char 2 | Похоже на XP папка TC4Shell в %Temp% не появляется. Поменяем.
Dimsok wrote: | C 7z тут пишет "нет подходящих архивов". | Если тип архива совпадает или паковать по сути нечего (внутри архивов пусто или объекты-нулёвки), то выдаст такое сообщение. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Fri Jan 20, 2017 16:56 Post subject: |
|
|
Ну не знаю, с кнопкой этот же 7z пакует. А понял, ты убрал возможность паковать в то же расширение, чтобы не было конфликтов при упаковке в ту же панель? Хотя иногда имеет смысл паковать в тот же самый архив с большим сжатием.
И как добавить новое расширение? Дописал CAB после WIM, но видно этого мало. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jan 20, 2017 16:59 Post subject: |
|
|
Dimsok wrote: | Ну не знаю, с кнопкой этот же 7z пакует. | А чего тут знать? Зачем мне из таких же архивов получать точно такие же? Это глупо для скрипта преобразования.
Dimsok wrote: | Дописал CAB после WIM, но видно этого мало. | Это ещё зачем? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|