ZIP - mit 7Zip alle Dateien "7-Zip und Zip" eines Ordners entpacken...

Frage: Wie kann ich alle Dateien "7-Zip und Zip" eines Ordners mit dem Programm 7Zip entpacken?
Wir nutzen das Kommandozeilentool des Programmes 7Zip. Eine Installation ist nicht erforderlich.
Um mein Beispiel zu nutzen MÜSSEN Sie die Pfade anpassen! Im Modul2 ist ein Beispiel, wie eine Passwortgeschützte Datei entpackt wird. Siehe zweiten Download.

INFO: Bitte denken Sie daran, dass Sie im zweiten Download nur den Code in Modul 2 testen. Wenn Sie den Code aus Modul1 starten bleibt "7za.exe" im Hintergrund offen, da er auf die Eingabe des Passwortes wartet. Das Fenster ist aber ausgeblendet. :-)

Please remember that you only test the code in module 2 in the second download. When you start the code in Module1 remains open "7za.exe" in the background, as he waits for the input of the password. But the window is hidden. :-)

How can I extract all files "7-Zip and Zip" in a folder with the 7Zip program?
We use the command line tool of the program 7Zip. No installation is required.
To use my example you MUST adjust the paths! In Modul2 is an example of how a Password-protected file is extracted. See second download.

Hier noch eine Beispieldatei / Here's a sample file:
ZIP - mit 7Zip alle Dateien "7-Zip und Zip" eines Ordners entpacken...[ZIP 4 MB]

Hier noch eine Beispieldatei mit Passwort / Here is a sample file with a password:
ZIP - mit 7Zip eine Datei "7-Zip" mit Passwort entpacken...[ZIP 5 MB]

Link:
7Zip...
7Zip - Download...

Option Explicit
' Konstante für die KONSOLENANWENDUNG 7Zip
' Keine Installation erforderlich
' Pfade ANPASSEN!!!!!!!!
Const strZip As String = "C:\Temp\Zip\7za.exe"
' Pfad in dem die 7z-Dateien UND Zip-Dateien sind
Const strPathQ As String = "C:\Temp\Zip\"
' Pfad in den die 7z-Dateien UND Zip-Dateien
' gegebenenfalls entpackt werden sollen
Const strPathZ As String = "C:\Temp\Zip\Neu\"
'--------------------------------------------------------------------------
' Module    : Modul1
' Author    : Case (Ralf Stolzenburg)
' Date      : 14.08.2013
' Purpose   : 7-Zip alle Dateien (7z und Zip) eines Ordners entpacken...
'--------------------------------------------------------------------------
Public Sub Main()
    Dim strFileName As String
    Dim strArg As String
    On Error GoTo Fin
    strFileName = Dir$(strPathQ & "*.*z*")
    ' Schleife über alle 7z- UND Zip-Dateien
    Do While strFileName <> ""
        ' Entpackt alle 7z-Dateien UND Zip-Dateien in den angegebenen Ordner
        strArg = strZip & " x " & strPathQ & strFileName & " -y -o" & strPathZ
        ' Entpackt alle 7z-Dateien UND Zip-Dateien in den aktuellen Ordner
        'strArg = strZip & " e " & strPathQ & strFileName & " -y"
        ' Entpackt alle 7z-Dateien UND Zip-Dateien in den aktuellen Ordner -
        ' jede 7z-Datei in einen Ordner. Entspricht 7-Zip - Entpacken nach "*\"
        ' Der aktuelle Ordner (CurDir) kann auch vorher noch eingestellt werden
        ' -y bedeutet KEINE Nachfrage, wenn Dateien schon vorhanden sind
        'strArg = strZip & " x " & strPathQ & strFileName & " -y -o*"
        ' Warten bis entpacken erledigt ist
        ShellAndWait strArg
        ' Nächster Dateiname
        strFileName = Dir$()
    Loop
Fin:
    ' Wenn die Fehlernummer NICHT 0 ist, dann gib die Fehlernummer
    ' und die Fehlerbeschreibung aus
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & " " & Err.Description
End Sub
'--------------------------------------------------------------------------
' Module    : Modul1
' Procedure : ShellAndWait
' Author    : Case (Ralf Stolzenburg)
' Date      : 14.08.2013
' Purpose   : ShellAndWait mit ausgeblendetem Dosfenster...
'--------------------------------------------------------------------------
Private Sub ShellAndWait(ByVal strPathName As String)
    Dim WshShell As Object
    On Error GoTo Fin
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run strPathName, 0, True
Fin:
    Set WshShell = Nothing
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub

Option Explicit
' Konstante für die KONSOLENANWENDUNG 7Zip
' Keine Installation erforderlich
' Pfade ANPASSEN!!!!!!!!
Const strZip As String = "C:\Temp\Zip\7za.exe"
' Pfad in den die 7z-Dateien UND Zip-Dateien
' gegebenenfalls entpackt werden sollen
Const strPathZ As String = "C:\Temp\Zip\Neu\"
'--------------------------------------------------------------------------
' Module    : Modul1
' Author    : Case (Ralf Stolzenburg)
' Date      : 14.08.2013
' Purpose   : 7-Zip alle Dateien (7z und Zip) eines Ordners entpacken...
'--------------------------------------------------------------------------
Public Sub Main_1()
    Dim strFileName As String
    Dim strArg As String
    On Error GoTo Fin
    ' Pfad- und Dateiname gegebenenfalls anpassen!!!!!
    strFileName = "C:\Temp\Zip\Kira7_Password_is_HIDE.7z"
    ' Eine PASSSWORTgeschützte 7Zip-Datei entpacken. Passwort ist HIDE
    strArg = strZip & " e -pHIDE " & strFileName & " -y -o" & strPathZ
    ShellAndWait strArg
Fin:
    ' Wenn die Fehlernummer NICHT 0 ist, dann gib die Fehlernummer
    ' und die Fehlerbeschreibung aus
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & " " & Err.Description
End Sub
'--------------------------------------------------------------------------
' Module    : Modul2
' Procedure : ShellAndWait
' Author    : Case (Ralf Stolzenburg)
' Date      : 14.08.2013
' Purpose   : ShellAndWait mit ausgeblendetem Dosfenster...
'--------------------------------------------------------------------------
Private Sub ShellAndWait(ByVal strPathName As String)
    Dim WshShell As Object
    On Error GoTo Fin
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run strPathName, 0, True
Fin:
    Set WshShell = Nothing
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub

Kommentare

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...