2012-04-11 8 views
6

Es gibt viele Möglichkeiten Archive auf Unix zu entpacken:Wie programmatisch entpacken Sie Archive in ihren eigenen Verzeichnissen unter Windows mit einem DOS-Befehl?

Das Ziel ist, alle Archive zu finden und sie in ihrem eigenen Verzeichnis dekomprimieren (wo jedes Archiv wird) unter Windows.
Optional:

  • das Archiv nach dem Entpacken entfernen.
  • eine Fehlermeldung aufzeichnen, wenn ein Archiv während des Entpackens Probleme hat.

Ich suche eine Ebene DOS-Kommandozeile, indem zum Beispiel 7z.exe (die in der tragbaren Version von PeaZip enthalten).

Antwort

7

I nahm eine Befehlsleitung von this thread of the sevenzip project, mit einer kleinen Änderung:

FOR /R %I IN (*src.zip) DO (C:\apps\peazip_portable-3.8.WINDOWS\res\7z\7z.exe x "%I" -aoa -o"%~dpI\*" |c:\windows\system32\find.exe "Everything is Ok" >nul &&DEL /F "%I" ||ECHO.%I : EXTRACT FAIL - ARC NOT DELETED >>ERR.TXT) 

(mehrzeiligen für Sichtbarkeit)

FOR /R %I IN (*src.zip) DO (\ 
    C:\apps\peazip_portable-3.8.WINDOWS\res\7z\7z.exe x "%I" -aoa -o"%~dpI\*" 
    |c:\windows\system32\find.exe "Everything is Ok" >nul &&DEL /F "%I" 
    ||ECHO.%I : EXTRACT FAIL - ARC NOT DELETED >>ERR.TXT) 

Anmerkungen:

  • I Spezifizierungs bevorzugen "c:\windows\system32\find.exe" statt nur FIND, weil ich andere 'habe'auf meiner PATH (von msysgit oder gow).
  • Entfernen Sie den '&&DEL /F "%I"' Teil, wenn Sie die Archive an Ort und Stelle halten wollen.

Ich entpackte nur 470 „src.zip“ aus den Rational Team Concert SDK in zwei Minuten mit dem Einzeiler!

0

Dies ist eine alte Frage, aber jemand könnte dies nützlich finden. Diese Methode funktionierte für mich mit WinZip und dem Add-On WinZip Command Line, beide auf der WinZip-Site für registrierte Benutzer verfügbar.

FOR /R %I IN (*.zip) DO (C:\Program Files (x86)\winzip\wzunzip.exe -ye "%I" "%~pI") 

-ye wird den Ordner nach Zip-Dateinamen benennen. % I ist der Name der Zip-Datei % ~ pI ist der ZIP-Datei Inhalt Ziel

Fühlen Sie sich frei, die Debugging-Nachrichten in der vorherigen Antwort hinzuzufügen. Führen Sie den Befehl in dem Ordner aus, in dem alle Ihre Unterordner gespeichert sind, die Ihre Zip-Dateien enthalten.