Batch the "Extract Here" command

2

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.

Marnix

Posted 2011-08-26T13:34:52.133

Reputation: 699

Can you paste your code for the .zip here and I will adapt it. – William Hilsum – 2011-08-26T13:40:00.037

@William There you go. – Marnix – 2011-08-26T14:36:21.737

Answers

5

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")

Mechaflash

Posted 2011-08-26T13:34:52.133

Reputation: 1 226

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 – 2011-08-26T14:33:45.143

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' – Mechaflash – 2011-08-26T17:42:09.440

You can use 'x' instead of 'e' to preserve the full path yes. My mistake. – Mechaflash – 2011-08-26T17:48:47.980