Baris perintah 7-Zip untuk mengekstrak folder dari arsip

16

Saya menggunakan 7-Zip commandline untuk mengekstrak ZIP arsip disebut abc.zipyang merupakan arsip dengan folder bernama 'zipper' dengan tiga file teks di dalamnya ( a.txt, b.txt, dan c.txt).

Masalah saya adalah ketika saya mengekstraknya dengan perintah berikut:

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

7-Zip ekstrak segalanya, tetapi tidak mengekstrak folder 'zipper', itu hanya ekstrak a.txt, b.txtdan c.txtdan menempatkan mereka dalam tujuan output (yaitu, C:\abc).

Bagaimana saya bisa membuat 7-Zip hanya mengekstrak folder yang sebenarnya?

meds
sumber

Jawaban:

9

Mungkin harus ada tanda hubung di depan o:

-oC:\abc

Juga pertimbangkan -ropsi rekursi.

kod
sumber
0

Saya harus memecahkan masalah yang sama. Ini kode yang saya pakai. Script ini menerima folder dan unzip semua zip (dan menghapusnya setelah itu). Caranya adalah dengan unzip data ke folder khusus. Sedikit tegang tapi berhasil ...

@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
pengguna536281
sumber