2012-04-11 10 views
6

Ci sono molti modi per decomprimere archivi su Unix:Come decomprimere in modo programmatico gli archivi nelle proprie directory su Windows con un comando DOS?

L'obiettivo è quello di trovare tutti gli archivi e decomprimere nella propria directory (in cui si trova ogni archivio) su Windows.
Opzionale:

  • rimuovere l'archivio dopo decomprimere.
  • registra qualsiasi messaggio di errore se un archivio ha un problema durante la decompressione.

Sto cercando una pianura riga di comando DOS , utilizzando, ad esempio, 7z.exe (che è incluso nella versione portatile di PeaZip).

risposta

7

ho preso una riga di comando da this thread of the sevenzip project, con una piccola modifica:

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) 

(più linee di visibilità)

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) 

Note:

  • I preferiscono specificando "c:\windows\system32\find.exe" invece di solo FIND, perché ho altri 'find.exe 'sul mio PATH (da msysgit o gow).
  • rimuovere la parte '&&DEL /F "%I"' se si desidera mantenere gli archivi in ​​posizione.

Ho appena decompressi 470 "src.zip" dal Rational Team Concert SDK in due minuti con quella one-liner!

0

Questa è una vecchia domanda, ma qualcuno potrebbe trovarla utile. Questo metodo ha funzionato per me utilizzando WinZip e l'add-on della riga di comando WinZip, entrambi disponibili sul sito WinZip per gli utenti registrati.

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

-ye chiamerà la cartella dopo il nome file zip. % I è il nome file zip % ~ pI è la destinazione del contenuto del file zip

Sentitevi liberi di aggiungere i messaggi di debug nella risposta precedente. Esegui il comando all'interno della cartella in cui sono archiviate tutte le sottocartelle contenenti i tuoi file zip.