7-Zip command line to extract a folder from an archive

97,207

Solution 1

You need to use 7z x archive.zip to extract with full paths. See: http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract_full.htm

Solution 2

There should probably be a hyphen in front of the o:

-oC:\abc

Also consider the -r option for recursion.

Solution 3

I had to solve a similar problem. Here is the code I used. This script receives a folder and unzips all zips (and deletes them afterwards). The trick is to unzip the data into a special folder. A little bit edgy but it works...

@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
Share:
97,207

Related videos on Youtube

meds
Author by

meds

Updated on September 18, 2022

Comments

  • meds
    meds almost 2 years

    I'm using the 7-Zip commandline to extract a ZIP archive called abc.zip which is an archive with a folder called 'zipper' with three text files in it (a.txt, b.txt, and c.txt).

    My problem is when I extract it with the following command:

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

    7-Zip extracts everything, but it doesn't extract the folder 'zipper', it just extracts a.txt, b.txt and c.txt and puts them in the output destination (that is, C:\abc).

    How can I make 7-Zip just extract the actual folder?

  • contactmatt
    contactmatt over 4 years
    +1 thought the switch -e would be sufficient.