Batch Rename
Batch Rename applies naming rules to files or folders in order and previews the results. It supports eight rule types, and rule combinations can be saved as presets.
Batch Rename is available on Windows, macOS, and Linux without a paid license. The shortcuts below use Windows / Linux conventions; on macOS, replace Ctrl with ⌘.
Names and rules
Rules change names while keeping files in their current folders. Each rule processes the name produced by the previous rule, so changing their order can produce a different result.
The Stem is the part of a file name before its last dot, and the Extension is the part after it. For example, report.txt has the stem report and extension txt; backup.tar.gz has the stem backup.tar. .gitignore has no extension, and a folder's entire name is treated as its stem.
Open and preview
- Check the files or folders you want to rename.
- Press Ctrl+F2, or right-click a checked item and choose Batch Rename.
- Enter the search and replacement text in the Replace rule that opens by default.
With no items checked, the shortcut acts on the selected item, while the context menu acts on the item you right-clicked. Changing the checked items while the panel is open updates both the preview and the set of items to rename.
The file area displays the proposed names directly. The status line shows the total number of items, how many will be renamed, and how many conflicts remain. Names on disk change only when you choose Apply.
Edit rules
Click + Rule in the bottom band or right-side panel to choose a rule to add. Click an existing rule to edit its parameters. Changing a parameter immediately updates the preview.
Replace
Replace can match plain text or use a regular expression to match part of a name. A new batch rename starts with regular expressions enabled; turn this off to search for text literally.
| Parameter | Effect |
|---|---|
| Find | The text or regular expression to match. |
| Replace with | The replacement text. Leave this empty to remove the matched part. |
| Regular expression | When enabled, interpret the pattern as a regular expression; otherwise, match it literally. |
| Ignore case | Match letters without distinguishing uppercase and lowercase. |
| Scope | Choose Whole name, Stem, or Extension. Extension excludes the preceding dot. |
| Nth match | 0 replaces every match; values from 1 replace only that occurrence. Names with fewer matches remain unchanged. |
For example, with regular expressions disabled, replacing draft with final changes draft-report.txt to final-report.txt.
In regular expression mode, reference capture groups in the replacement with $1, $2, or ${name}. For example, choose Stem, find ^IMG_(\d+)$, and replace it with Photo-$1 to change IMG_0421.jpg to Photo-0421.jpg. With regular expressions disabled, $1 is ordinary text.
Affix
Affix adds text before and after the stem, preserving the extension.
| Parameter | Effect |
|---|---|
| Prefix | Text to add before the stem. |
| Suffix | Text to add after the stem, before the extension. |
For example, a prefix of 2026- and suffix of -final change report.txt to 2026-report-final.txt.
Number
Number adds an increasing or decreasing number to each item. It can also use letters.
| Parameter | Effect |
|---|---|
| Start | The first number in the sequence. |
| Step | The difference between consecutive numbers; a negative value counts down. |
| Digits | Pad numeric labels with leading zeros to reach this width. |
| Separator | Text between the stem and the number. |
| Position | Prefix places the number before the stem; Suffix places it after the stem, before the extension. |
| Style | Choose Digits, a-z, or A-Z. Letter sequences continue from z to aa, ab, and so on, and ignore the digit width. |
| Order | View order follows the file area's arrangement; Modified time numbers items from the earliest modification time to the latest. |
For example, set Start to 1, Step to 1, Digits to 3, Separator to -, and Position to Prefix. If report.txt is the first item, its proposed name is 001-report.txt.
When numbering by modification time, items with the same time keep their view order, and items without a modification time come last. Letter sequences start at 1 for a or A; values below 1 appear as numbers.
Case
Case changes the capitalization of letters in the stem or extension.
| Parameter | Effect |
|---|---|
| Mode | Choose lowercase, UPPERCASE, Title Case, or Sentence case. |
| Apply to | Choose the stem or extension. |
For example, applying Title Case to the stem of summer report.TXT produces Summer Report.TXT. Title Case and Sentence case affect English letters; Chinese characters remain unchanged.
Extension
Extension can change the extension to lowercase, replace it, or remove it. This rule does not change folders.
| Parameter | Effect |
|---|---|
| Mode | Lowercase converts the extension to lowercase; Set to uses a specified extension; Remove deletes the extension and its preceding dot. |
| New extension | Used in Set to mode. Enter it with or without a leading dot. Leaving it empty removes the extension. |
For example, choosing Set to and entering txt changes report.log to report.txt. Files without an extension receive the specified extension.
Changing an extension changes only the name, without converting the file contents. For example, renaming photo.jpg to photo.png leaves its contents in JPEG format.
Date
Date adds a file's date or the current date before or after the stem, using the local time zone.
| Parameter | Effect |
|---|---|
| Format | Choose YYYYMMDD, YYYY-MM-DD, or YYYY.MM. |
| Source | Choose Modified, Created, or Today. |
| Position | Choose Prefix or Suffix. |
| Separator | Text between the date and the stem. |
For example, if a file was modified on September 21, 2026, choose YYYY-MM-DD, Prefix, and the separator _ to change report.txt to 2026-09-21_report.txt. If an item lacks the selected time information, this date rule leaves it unchanged; the other rules still apply.
Template
Template combines the stem, a sequence number, and fixed text into a new name, preserving the extension.
| Parameter | Effect |
|---|---|
| Template | * represents the stem received by this rule. Consecutive # characters represent a sequence number, with their count setting its minimum width. Other text is kept literally. |
| Start | The first sequence number; each subsequent item adds 1. |
| Digits | The larger of this value and the number of consecutive # characters sets the minimum numeric width. |
| Style | Choose Digits, a-z, or A-Z. |
| Order | Choose View order or Modified time, using the same ordering as the Number rule. |
For example, with the template Trip-###-*, Start 1, and Digits 3, the first item beach.jpg becomes Trip-001-beach.jpg. Without *, the template discards the original stem. Multiple groups of # in one template use the same sequence number.
To retain special characters literally, use \*, \#, and \\ for an asterisk, hash, and backslash. For example, Set\#-### produces Set#-001.jpg. The resulting name must still meet the file system's naming restrictions.
Remove
Remove deletes a specified number of characters from the stem while preserving the extension.
| Parameter | Effect |
|---|---|
| At position | The starting character position, counted from 1. |
| Count | The number of characters to delete. A Chinese character also counts as one character. |
| From | Left counts and deletes from left to right; Right counts and deletes from right to left. |
For example, deleting 5 characters from position 1 on the left changes 2026-report.txt to report.txt. The rule leaves the name unchanged if the position or count is 0, or if the position is beyond the stem's length.
Change rule order and enabled state
The bottom band processes rules from left to right, continuing on the next line when they wrap. The right-side panel processes them from top to bottom.
| Action | Effect |
|---|---|
| Click a rule | Open or collapse its parameters. |
| Toggle Enabled | Disable or re-enable the rule while keeping its parameters. In the right-side panel, use the checkbox beside the rule title. |
| Click an order arrow | Use ← and → in the bottom rule's editor, or ↑ and ↓ in the right-side panel. |
| Drag a rule card's title in the right-side panel | Move the rule to a new position. Use the order arrows in the bottom band. |
| Click a rule's ✕ | Delete the rule. |
For example, replacing draft with final before adding the prefix draft- changes draft.txt to draft-final.txt. Reversing those rules produces final-final.txt.
Change panel position
Batch Rename can use a bottom rule band or a right-side dock. Open Settings → Layout → Batch Rename → Rule Panel Position and choose one of these options.
| Setting | Effect |
|---|---|
| Auto | Use the right-side dock when the file area is wide enough, and the bottom band when space is limited. |
| Bottom rule band | Place rules above the footer. Click a rule to open its parameter editor. |
| Right-side dock | List rules to the right of the file area, with one rule expanded at a time. The bottom band is still used when space is insufficient. |
The right-side dock is available only in Details and Icons views. Gallery and Columns use the bottom band.
Click the panel's position toggle to switch between the two positions and save that fixed choice. To restore automatic switching, choose Auto in Settings. Drag the dock's left edge to change its width; tessoa remembers the width.
Save and load presets
Rule presets store the parameters, order, and enabled state of a complete set of rules for use with another batch of files.
- Configure the rules to save.
- Click the Rule presets icon button on the rule panel.
- Enter a preset name at the top.
- Click Save, or press Enter in the name field.
Saving under an existing name replaces that preset. You can save up to 32 presets. A preset must have a name and contain at least one rule.
| Action | Effect |
|---|---|
| Click a preset name | Replace the current set of rules and update the preview. Loading a preset does not immediately rename files. |
| Hover a preset row and click its ✕ | Delete the saved preset. |
Apply and undo
- Check the proposed names in the file area and the rename count in the status line.
- Correct names shown in red and resolve conflicts or Bad regex in the status line.
- Click Apply to rename the files.
Conflicts occur when two items in the same folder produce the same name, or a file outside this batch already occupies the target name. You cannot apply while there are conflicts, an invalid regular expression, or no names to change. Items with invalid names appear in red and are skipped; Apply processes only items with valid, changed names.
Pressing Enter in a rule parameter also applies the whole batch. In the preset name field, it saves the preset instead. Click Cancel to discard unapplied changes. Esc first closes the current menu or rule editor, then exits Batch Rename.
After completion, press Ctrl+Z or click Undo in the completion toast to undo the successful renames as a batch. Failed items are reported in the toast and in Activity.
Basic operations · View modes · Activity · Keyboard shortcuts