Riga di comando 7-Zip per estrarre una cartella da un archivio


16

Sto utilizzando la 7-Zip riga di comando per estrarre una ZIP archivio chiamato abc.zip, che è un archivio con una cartella chiamata 'cerniera' con tre file di testo in esso ( a.txt, b.txt, e c.txt).

Il mio problema è quando lo estraggo con il seguente comando:

7z e C:\abc\abc.zip -y oC:\abc

7-Zip estrae tutto, ma non estrae la cartella 'cerniera', appena estratti a.txt, b.txted c.txte li mette nella destinazione di output (cioè C:\abc).

Come posso fare 7-Zip solo estrarre la cartella attuale?

Risposte:



9

Probabilmente dovrebbe esserci un trattino davanti a o:

-oC:\abc

Considera anche l' -ropzione per la ricorsione.


0

Ho dovuto risolvere un problema simile. Ecco il codice che ho usato. Questo script riceve una cartella e decomprime tutte le zip (e le elimina in seguito). Il trucco è decomprimere i dati in una cartella speciale. Un po 'spigoloso ma funziona ...

@echo off

set SEVEN_ZIP_HOME=C:\Program Files\7-Zip

set TEMPDIR=temp

set WORKING_DIR="%1"

if "%WORKING_DIR%"==""  set WORKING_DIR=%~dp0

cd /d %WORKING_DIR%

if not exist %TEMPDIR% md %TEMPDIR%

for %%i in ("%WORKING_DIR%\*.zip") do call :unzipAndDelete "%%i"

rd %TEMPDIR%

goto :end

:unzipAndDelete 

set ZIP_FILE=%~1

call :extractName %ZIP_FILE%

call "%SEVEN_ZIP_HOME%\7z.exe" e "%ZIP_FILE%" -o./%TEMPDIR%

copy .\%TEMPDIR%\*.* %FILENAME%.log

del .\%TEMPDIR%\*.* /q

del "%ZIP_FILE%"

goto :end

:extractName 

set FILENAME=%~n1
goto :end


:end
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.