Flasher

|
Posted: Mon Feb 03, 2014 20:54 Post subject: |
|
|
Cobblestone-TLT
Может, кто-то хочет с WinRAR работать. Оставлю и тот вариант.
 Decompress_selected_archives.vbs Code: | '=========================================================
' Распаковка выбранных архивов в одноимённые папки
' с возможностью удаления правильно распакованных архивов
' Параметры: %WL "<путь получателя>" <флаг удаления: 1>
' Пример: %WL "%P" 1
'====================== Путь к 7-zip =====================
Z7 = """%COMMANDER_PATH%\Utils\7-Zip\7z.exe"""
'=========================================================
With WScript.Arguments
C = .Count : If .Count = 0 Then WScript.Quit
List = .Item(0) : Path = .Item(1) : If C = 3 Then Del = .Item(2)
End With : If Right(Path, 1) <> "\" Then Path = Path & "\"
Dim WSH : Set WSH = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Const M = 0 : Set Dict = CreateObject("Scripting.Dictionary")
Exts = "zip 7z 7zip arj bz2 bzip2 cab chm chw cpio cramfs deb dmg doc" &_
" exe fat gz gzip hfs hxs iso lha lzma mbr msi ntfs ppt rar rpm scap " &_
"squashfs swm tar taz tbz tbz2 tgz vhd wim xar xls xz"
For Each Ext in Split(Exts) : Dict.Add Ext, "" : Next
For Each F in Split(FSO.GetFile(List).OpenAsTextStream(1,-1).ReadAll, vbNewLine)
If F <> "" And Dict.Exists(LCase(FSO.GetExtensionName(F))) Then
BN = Path & FSO.GetBaseName(F) : NN = BN : n = 0
Do While FSO.FolderExists(NN)
n = n + 1
If n < 10^M Then PFix = Right(String(M, "0") & n, M) Else PFix = n
NN = BN & " (" & PFix & ")"
Loop : WSH.Run Z7 & " x """ & F & """ -o""" & NN & "\"" -y -p", 0, True
If FSO.FolderExists(NN) Then
If FSO.GetFolder(NN).Size Then
If Del = 1 Then FSO.DeleteFile F, 1
Else FSO.DeleteFolder NN, 1
End If
End If
End If
Next : Set FSO = Nothing : Set WSH = Nothing : Set Dict = Nothing : WScript.Quit |
В этот скрипт ещё добавил автосмену потенциального имени папки, если папка с тем же именем уже существует. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Sun Feb 09, 2014 12:25; edited 3 times in total |
|