Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Извлечение файлов из архивов сохраняя структуру 
Author Message
swr



PostPosted: Tue Sep 13, 2011 11:33    Post subject: Reply with quote

Распаковка всех *.opf происходит в одну и ту же папку

Примерно это вывглядит так

Папка\Автор - Название 1.epub
Папка\Автор - Название 2.epub
Папка\Автор - Название 3.epub

Папка\OEBPS\Content.opf
Папка\OEBPS\Content.opf
Папка\OEBPS\Content.opf


' Рекурсивная распаковка архивов внутри выделенных каталогов
' Параметры: %L <расширение архива>
'==========================================
Dim FSO, WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Proga = WSH.ExpandEnvironmentStrings("c:\Programs\Archives\7-Zip\7z.exe")
Path = WScript.Arguments(2)
If Right(Path,1) <> "\" Then Path = Path & "\"

With FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not .AtEndOfStream
F = Trim(.ReadLine)
If F <> "" Then
If FSO.FolderExists(F) Then ForFolder FSO.GetFolder(F)
End If
Loop
.Close
End With

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

Sub ForFolder(Folder)
Dim N
For Each N In Folder.Files
ForFile N
Next
For Each N In Folder.SubFolders
ForFolder N
Next
End Sub

Sub ForFile(File)
If LCase(FSO.GetExtensionName(File)) = LCase(WScript.Arguments(1)) Then WSH.Run """" & Proga & """x """ & File & """ -o""" & Path & Mid(File.ParentFolder,4) & "\"" -i!OEBPS\*.opf -y", 0, True
End Sub



Code:

TOTALCMD#BAR#DATA
"F:\Временно\_File Download\Local\Рекурсивная распаковка.vbs"
"%L" epub "%T"
C:\WINDOWS\System32\WScript.exe
Рекурсивная распаковка


-1
View user's profile Send private message Send e-mail


Powered by phpBB © 2001, 2005 phpBB Group