3

I would like to batch the "Extract Here..." command on a complete folder. Every type of archive should be unzipped into the current folder with the name of the archive file. I have found some BATCH scripts for just *.zip, but I don't care what kind of archive it is, as long as my archiver can open it.

Does anyone know what kind of archiver has such a batching funcionality? I can't seem to find it in 7-zip or winrar.

In pseudo:

Given folder x
foreach archiveFile in x or descendant of x
unzip archiveFile.extension >> "folder of archiveFile/archiveFile"

Update
I have tried the following for only zip files:

dir /s /b *.zip > allzips.txt
for /F %%x in (allzips.txt) do unzip %%x

Where unzip is still an unknown function.

2
  • Can you paste your code for the .zip here and I will adapt it. Aug 26, 2011 at 13:40
  • @William There you go.
    – Marnix
    Aug 26, 2011 at 14:36

1 Answer 1

6

EDIT Given: Using batch script.

You may wish to use a third party zip tool (highly recommend 7-ZIP command line version called 7z.exe) to accomplish this.

with 7z, the syntax is as follows:

7z <command> [<switch>...] <base_archive_name> [<arguments>...]

To extract the command would be:

7z e file.zip -y

the -y switch assume "Yes" answer to any questions that may come up during extraction such as overwrite requests.

So your command will read

CD "C:\Location\Of\ZipFiles"
FOR /F "USEBACKQ tokens=*" %%F IN (`DIR /b *.zip`) DO (7z e "%%F" -y)

If you want to output them into a different location, you can use the -o switch and specify the directory:

7z e "%%F" -y -oC:\Some\Other\Folder\

EDIT:

To perform the extract with full paths and specifying all ZIP archives only, use this:

7z x -tzip "C:\Location\of\zips\*"

Or even nutzier... all ZIP files on C: drive:

7z x -r -tzip "C:\*"

EDIT2:

Making it compatible with your output file, this:

dir /s /b *.zip > allzips.txt
for /F %%x in (allzips.txt) do (7z x -tzip "%%x")
3
  • I would like to maintain the folder and output them at the location itself. Shouldn't I use the x instead of e? And: This is still for zip files only. Isn't there a way to just say: all archive-kind-of-files?
    – Marnix
    Aug 26, 2011 at 14:33
  • So you want to pull ALL ZIP FILES from anywhere on the drive and tell them to extract where they sit into a folder named the same as the zip file? And no in 7z the extract option is 'e' Aug 26, 2011 at 17:42
  • You can use 'x' instead of 'e' to preserve the full path yes. My mistake. Aug 26, 2011 at 17:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .