Here's the problem:  I have a folder which contains hundreds of subfolders, and I wanted to make each subfolder into it's own ZIP file of the same name. Winrar doesn't have the built-in functionality to accomplish this goal, or none that I could find (feel free to correct me).  And I'm not a fan of winzip or any other archival utilities, so I set out to get this accomplished via winrar.exe's command line interface.

 

I wrote a simple for loop to get the job done:

  for /F "eol= delims=" %%A IN (dir.txt) do winrar A -ep1 -r %%A.zip "y:\"%%A"\*.*"

 

Dir.txt is an ouput of a dir command listing all of the subdirectories.  Use the following command to generate it without any superfluous information:

  dir /A:D /B >dir.txt

 

The for loop command breakdown (from above) is:

  for /F <set the end of line and delimiting characters, which in this case is nothing for both> <variable to use> IN <answer file> do <command>

 

The command in this example is winrar A -ep1 -r <target zip/rar file> <source files>.  You can see that I was referencing files from a mapped drive, your siutation might be different.

  A = add files to archive

  -ep1 = do not add the base folder to the archive, instead add only the files inside that base subdirectory

  -r = recurse subdirectory

 

Winrar.exe has quite a few othe switches that you can play around with, but this is just a sample of how to get the command working for what I wanted to accomplish.