How do I batch rename file extensions in Windows?

Changing a single file extension in Windows is simple. Just highlight the filename in Windows Explorer and type a new extension after the dot. While this method works fine for a small number of files, manually editing a large number of filenames can take a long time. Fortunately, you can speed up the process through automation by following the steps below.

Files in a Single Folder

Below is an example folder with several .TXT files that need to be changed to .XML files.

TXT Files Folder

1. In order to batch rename file extensions, you will first need to open the Windows Command Prompt. To do this, choose Start → Accessories → Command Prompt.

Open Windows Command Prompt

You can also type "cmd" and press Enter in the Windows Start Menu text field.

Start Menu cmd Search

2. Navigate to the directory containing the files to rename using the "cd" command ("cd" stands for "change directory"). For example, you would type "cd Desktop\XML Docs" to navigate to a folder named "XML Docs" on the Windows desktop.

3. Type the following command, which will rename all *.txt files in the current folder to *.xml files:

ren *.txt *.xml

Windows ren Command

The ren command (short for "rename") provides a simple way to rename one or more files using the Command Prompt. The asterisk (*) in the example above serves as a wildcard character, which is used to rename all files ending in ".txt".

4. The files are all renamed from *.txt to *.xml:

Renamed XML Files

NOTE: If your files have different extensions, or they do not have an extension at all and you would like to add an extension to them, you can use this command instead:

ren * *.xml

Files in Subfolders

Renaming files in subfolders (or subdirectories) is a more complex task that requires additional syntax. The following command uses a loop that iterates through subfolders (one level deep) and changes all file extensions from *.txt to *.xml:

for /d %x in (*) do pushd %x & ren *.txt *.xml & popd

Subfolders list

Rename Subfolders Command

You can replace *.txt and *.xml with any other extensions in the commands above. Also, you can replace *.txt (the first variable) with just * if you want to rename all extensions for all files.

NOTE: Make sure you type the commands above correctly, as you may not be able to undo the renaming process. If you want to be extra safe, you can copy the files to a new folder so that you have a backup of the files before you run the rename command. Once the renaming process completes successfully, you can delete the extra copy of the files.