How to rename multiple files at once on Windows
Windows ships with a batch rename hidden in File Explorer that almost nobody knows about, and it handles the simplest case. For everything else you need something else. Here are the four methods, from least to most capable, with what each one cannot do.
1. The File Explorer trick
This is the one already installed on your machine, and it solves "I want all these photos to share a name with a number after it".
- Open the folder and select the files with
Ctrl+A, or one by one holdingCtrl. - Press
F2, or right-click and choose "Rename". - Type the name you want for the set and press
Enter.
Windows gives every file the same name with a number in parentheses:
Wedding (1).jpg, Wedding (2).jpg, and so on.
What it cannot do: you do not get to choose the number format, so you are stuck with the parentheses whether you want them or not. It does not sort by date. It cannot replace part of a name while keeping the rest. And there is no preview: you see the result once it has already happened.
2. PowerRename, from Microsoft PowerToys
PowerToys is a free set of utilities published by Microsoft. One of its modules, PowerRename, adds a right-click option with find and replace.
- Install PowerToys from the Microsoft Store.
- Enable the PowerRename module in its settings.
- Select the files, right-click, "Rename with PowerRename".
It takes regular expressions and shows a preview of the resulting names, which is exactly what File Explorer lacks.
What it cannot do: it runs one find-and-replace operation at a time. If you want to strip the parentheses, add the date and then number the files, you go through the dialog three times. It does not convert formats either, and its duplicate detection is limited.
3. PowerShell, if the console does not scare you
When the rename is odd and you only need it once, a line of PowerShell does it. To
strip the text (copy) from every file in the folder:
Get-ChildItem *.jpg | Rename-Item -NewName { $_.Name -replace ' \(copy\)','' }
And to add the modification date as a prefix:
Get-ChildItem *.jpg | Rename-Item -NewName { $_.LastWriteTime.ToString('yyyy-MM-dd') + '_' + $_.Name }
What it cannot do: getting it wrong is expensive. There is no preview
and no undo, and one slip in the expression can leave you with two hundred files sharing
a name. If you go this route, test with -WhatIf on the end of the command
first, which shows what it would do without doing it.
The pattern worth noticing: the methods that ship with Windows either do not show you the result before applying it, or only do one operation per pass. On a big batch, that is precisely when the expensive mistakes happen.
4. Stacked rules with a live preview
The fourth method is a tool built for this, one that lets you stack several operations and see the result before anything is touched. That is what Tanda does: you add the rules you need, reorder them, and a table shows the current name and the new name of every file as you type.
For the case above — photos off a shoot arriving with camera names, duplicate copies and double spaces — that is three rules:
- Clean up characters: remove
()and the extra spaces. - File date: put
2026-06-14at the start. - Numbering: three digits at the end, starting from 1.
The result is visible before applying, names that would collide are flagged in red, and the apply button stays locked while any conflict remains. If you apply something you did not mean to, there is a button to undo the last batch.
Which one to use
- Same name for all, with a number: File Explorer, nothing to install.
- One simple text substitution: PowerRename.
- Something very specific, once, and you are at home in a console: PowerShell with
-WhatIf. - Several operations stacked, big batches, or you want to look before you leap: a tool with a preview.
Whichever method you pick, the advice that saves grief is the same: the first time, run it on a copy of the folder.