Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Under the folder images\, I have the following folders:

  • Usa\
  • Italy\
  • Japan\

etc..

I want a script that creates a .zip for each of these folders, so I have usa.zip , italy.zip, japan.zip.

How can I do that?

share|improve this question
8  
Would you prefer for it to run under OS/2 or under VMS? –  Ignacio Vazquez-Abrams Jul 31 '11 at 8:11
    
I would help, but we really need to know the Operative System. Windows maybe? –  nmat Jul 31 '11 at 8:43

3 Answers 3

Assuming you are on Linux you could use a Bash script like this:

  #!/bin/bash

  IFS=$'\n'

  for f in $(find "$1" -mindepth 1 -maxdepth 1 -type d ); do
    zip -r "$f" "$f"
  done

This script will take the first argument as folder, in this case images, and recurse exactly one level deep to get all your folders (Usa, Italy and Japan) and zip them in the same place.

It will not delete old zip files or the source folders. Zip is smart enough to detect existing zip files and update them when run again. However, if you delete a file in the source folders it will not be deleted in the zip files. You might circumvent this behaviour by deleting existing files beforehand.

share|improve this answer

I assume this is Windows, as you are using backslashes.

Get 7za.exe (the command-line version of 7-zip) and put it in your %PATH%.

Then run this within your Images\ directory:

for /f "usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"

Or in a batch script:

for /f "usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
share|improve this answer

You can use Winrar for this.

Select all your folders, right click and select Add to archive. Now select the option Put each file to separate archive under the tab Files:

enter image description here

Click OK and you're done. If you want .zip files instead of .rar, just select ZIP in the General tab under Archive format.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.