This guide describes the use of the WinRAR command-line tools (v5.01) for compressing and uncompressing files in a directory and their use in batch files. This guide is an extension of a previous post, Automate Zipping Tasks using the Command-line Interface that explained the use of the command-line tools for two free compression utilities, IZArc and 7-Zip. The information in this guide was tested on a Windows PC running Vista.
WinRAR is a popular and powerful archive manager that can be used from the command-line or with scripting languages such as batch files. It includes two command-line tools, rar.exe and unrar.exe, where rar.exe compresses and unrar.exe uncompresses files. Both are located in the “C:\Program Files\WinRAR” folder in the installable version. Although WinRAR is shareware, it can be used on a trial basis for 40 days. Using WinRAR’s command-line tools is similar to those for IZArc and 7-Zip. The syntax for using the WinRAR executables is:
RAR or UNRAR <command> -<switch1> -<switchN> <archive> <files...> <@listfiles...> <path_to_extract\>
To get a listing of the options for the rar and unrar commands, open a command window, cd to the WinRAR directory, and type rar or unrar and then press enter (rar /? or rar help may also be used, use rar >rar_cmds.txt or unrar >unrar_cmds.txt to print the command options to a file). For more detailed information, open the rar.txt file in the WinRAR directory which contains the RAR console version user’s manual.
Examples to compress a folder:
rar a -r yourfiles.rar *.txt
creates archive yourfiles.rar and compresses all .txt files in the current folder
rar a -r C:\yourfolder\yourfiles.rar *.txt
creates archive yourfiles.rar in C:\yourfolder and compresses all .txt files in the current folder and its subfolders
rar a -r C:\yourfolder\yourfiles.rar C:\otherfolder\*.txt
creates archive yourfiles.rar in C:\yourfolder and compresses all .txt files in otherfolder and its subfolders
rar a yourfiles
creates archive yourfiles.rar and compresses all files in the current folder, but doesn’t include subfolders (note lack of extension; WinRAR will use the default extension .rar)
“a” command. Adds to the archive
“-r” switch. Recurses subfolders
Examples to uncompress a folder:
unrar x c:\yourfile.rar *.gif c:\extractfolder\
extracts all *.gif files from yourfile.rar to c:\extractfolder\ (trailing backslash required) and restores the folder structure
unrar e c:\yourfile.rar
extracts all files in c:\yourfile.rar to the current folder (folder structure ignored)
“x” command. Extracts with full paths
“e” command. Extracts and ignores paths
Compression example using Multiple Switches:
rar a -r -ep -u -df -x*.bat e_archive.rar c:\test\*.*
compresses all new or updated files from c:\test and its subfolders to e_archive.rar, deletes the files after they are added to the archive, and excludes any files with a “bat” extension,
“a” command adds to the archive
“-r” switch. Recurses subfolders
“-ep” switch. Adds files to the archive without including the path information. Multiple can exist in the archive with the same name.
“-u” switch. Equivalent to the “u” command when combined with the “a” command. Adds new files and updates older versions of the files already in the archive
“-df” switch. Deletes files after they are moved to the archive
“-x” switch. Excludes the specified file(s) from the operation
Basic rules for WinRAR:
- When files or listfiles are not specified, all files in the current folder are processed
- When specifying all files in a folder, yourfolder or yourfolder\*.* are equivalent
- Folder structures are automatically saved in archives (but not automatically extracted)
- WinRAR uses the .rar extension by default, but that can be overridden by specifying the zip extension in the archive name
- Switches and commands are not case sensitive and can be written in either upper or lower case
Another point is that WinRAR doesn’t appear to use the Windows path environment variable, so it must be specified either at a command prompt, set permanently in the environment variable settings, or specified in a batch file.
To set the Windows path environment variable temporarily at a command prompt or in a batch file, use the following command:
set path="C:\Program Files\WinRAR\";%path%
To set it permanently in the Windows path for your PC:
start–>Control Panel–>System–>Advanced system settings–>Advanced Tab–>Environment Variables–>System Variables–>Path–>Edit. Add the path ;C:\Program Files\WinRAR; to the end (don’t forget the single semicolons at the beginning and end). Hit OK three times.
Using WinRAR in Batch Files:
Two batch file examples are provided, The first (compress_rar_rev1.bat) provides several compression options such as such as compressing all files in a folder or a folder and its subfolders, with options to compress them into a single archive or individually and to include or exclude paths. The second batch file (uncompress_rar.bat) decompresses all .rar files from a folder and places the extracted files into another directory. Be sure to change the extension(s) to .bat before using either file. Both of the following batch files temporarily set the Windows path environment variable for the WinRAR folder when executed.