# Batch renaming

Batch renaming is a form of batch processing used to rename multiple computer files and folders in an automated fashion, in order to save time and reduce the amount of work involved. Some sort of software is required to do this. Such software can be more or less advanced, but most have the same basic functions.
Batch renaming can also be referred to as 'mass file renaming', rename 'en masse' and 'bulk renaming'.

## Common functions

Most batch renamers share a basic set of functions to manipulate the filenames:
* Find a string within the filename and replace it with another, or remove it.
* Setting the capitalization of the letters in the filenames.
* Extracting information from the files, such as Mp3 ID3 tags, and putting it in the filename.
* Add a number sequence (001,002,003,...) to a list of files.
* Use a text file as a source for new file names.
Some batch rename software can do more than just renaming filenames. Features include changing the dates of files and changing the file attributes (such as the write protected attribute).

## Common uses

There are many situations where batch renaming software can be useful. Here is a list of some common uses:
* Many digital cameras store images using a base filename, such as DCSN0001 or IMG0001. Using a batch renamer the photographer can easily give the pictures meaningful names.
* When downloading files from the Internet such as mp3 music, the files often have crude names. A batch renamer can be used to quickly change the filenames to a style that suits the person who downloaded them.
* When managing large amount of files, such as a picture database, a batch renamer is more or less essential for the task of maintaining filenames without too much manual labour.
* When authoring music files onto a CD/DVD or transferring the files to a digital audio player, a batch renamer can be used to listen to songs in desired order.
* When uploading files to a web server or transferring the files to an environment that does not support space or non-English characters in filenames, a batch renamer can be used to substitute such characters with acceptable ones.

## Problems

There are a few problems to take in consideration when renaming a file list. (→ means: renamed to)
* Detecting that the target filename already exist.
   file01 → file02 (file02 already exists in file-system)
* Detecting that the target filename is already used.
   file01 → file03 file02 → file03 (file03 is already used)
* Detecting cycle renaming (Solved by a two-pass renaming).
   file01 → file02 (file02 already exists in file-system) file02 → file03 (file03 already exists in file-system) file03 → file01 (file01 already exists in file-system)

## Two-pass renaming

Two-pass renaming uses a temporary filename (that doesn't exist in file-system) as shown below. (→ means: renamed to)
* First pass
   file01 → file01_AAAAA file02 → file02_AAAAB file03 → file03_AAAAC
* Second pass
   file01_AAAAA → file02 file02_AAAAB → file03 file03_AAAAC → file01
It solves the cycle renaming problem.
If this approach is to be used care should be taken not to exceed any filename length limits during the rename, and also that the temporary names do not clash with any existing files.

## List of software

This is a list of notable batch renaming programs in the form of a comparison table.
| Name | License | Windows | Mac OS X | Linux | BSD/FreeBSD | Unix-like |
| Advanced Renamer | Free for non-commercial use | Yes | No | No | No | No |
| Ant Renamer | Free GNU General Public License v3 | Yes | No | No | No | No |
| Aperture | Commercial | No | Yes | No | No | No |
| Automator | Free with OS X | No | Yes | No | No | No |
| File Rename Utility | Free | Yes | No | No | No | No |
| Bulk Rename Utility | Free for non-commercial use | Yes | No | No | No | No |
| Bulky | AGPL3 | Yes | Yes | Yes | Yes | Yes |
| Chrono Namer | Free | Yes | No | No | No | No |
| CRAX Commander | Commercial | No | Yes | No | No | No |
| Easy File Renamer | Commercial | Yes | No | No | No | No |
| ExifRenamer | Free | No | Yes | No | No | No |
| GNOME Commander | Free, GNU General Public License | Yes (via Cygwin) | No | Yes | Yes | Yes |
| GPRename | Free, GNU General Public License v3 | No | No | Yes | Yes | Yes |
| KRename | Free, GNU General Public License v2 | No | No | Yes | Yes | Yes |
| Métamorphose | Free, GNU General Public License v3 | Yes | Yes | Yes | Yes | Yes |
| AlgoLogic Batch File Renamer | Commercial | Yes | No | No | No | No |
| ImBatch | Free for non-commercial use | Yes | No | No | No | No |
| ReNamer Lite(den4b) | Free for non-commercial use | Yes | No | No | No | No |
| Thunar (bulk renamer) | Free, GNU General Public License v2+ | No | No | Yes | Yes | Yes |
| Unreal Commander | Free | Yes | No | No | No | No |
| Vi move (vimv) | Free, GNU General Public License v3+ | Yes (via Cygwin) | Yes | Yes | Yes | Yes |
| Vifm | Free, GNU General Public License v2+ | Yes | Yes | Yes | Yes | Yes |
| Namagic | Commercial | No | Yes | No | No | No |
| rename | Free, GPL | No | Yes | Yes | — | Yes |
| rnm | Free, GPL-3+ | No | Yes | Yes | — | Yes |