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.