Skip to content

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 ​

  1. Check the files or folders you want to rename.
  2. Press Ctrl+F2, or right-click a checked item and choose Batch Rename.
  3. 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.

Combining naming rules updates the proposed names in the file area. After checking the preview, click Apply to rename the batch.

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.

ParameterEffect
FindThe text or regular expression to match.
Replace withThe replacement text. Leave this empty to remove the matched part.
Regular expressionWhen enabled, interpret the pattern as a regular expression; otherwise, match it literally.
Ignore caseMatch letters without distinguishing uppercase and lowercase.
ScopeChoose Whole name, Stem, or Extension. Extension excludes the preceding dot.
Nth match0 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.

ParameterEffect
PrefixText to add before the stem.
SuffixText 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.

ParameterEffect
StartThe first number in the sequence.
StepThe difference between consecutive numbers; a negative value counts down.
DigitsPad numeric labels with leading zeros to reach this width.
SeparatorText between the stem and the number.
PositionPrefix places the number before the stem; Suffix places it after the stem, before the extension.
StyleChoose Digits, a-z, or A-Z. Letter sequences continue from z to aa, ab, and so on, and ignore the digit width.
OrderView 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.

ParameterEffect
ModeChoose lowercase, UPPERCASE, Title Case, or Sentence case.
Apply toChoose 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.

ParameterEffect
ModeLowercase converts the extension to lowercase; Set to uses a specified extension; Remove deletes the extension and its preceding dot.
New extensionUsed 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.

Note

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.

ParameterEffect
FormatChoose YYYYMMDD, YYYY-MM-DD, or YYYY.MM.
SourceChoose Modified, Created, or Today.
PositionChoose Prefix or Suffix.
SeparatorText 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.

ParameterEffect
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.
StartThe first sequence number; each subsequent item adds 1.
DigitsThe larger of this value and the number of consecutive # characters sets the minimum numeric width.
StyleChoose Digits, a-z, or A-Z.
OrderChoose 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.

ParameterEffect
At positionThe starting character position, counted from 1.
CountThe number of characters to delete. A Chinese character also counts as one character.
FromLeft 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.

ActionEffect
Click a ruleOpen or collapse its parameters.
Toggle EnabledDisable or re-enable the rule while keeping its parameters. In the right-side panel, use the checkbox beside the rule title.
Click an order arrowUse ← and → in the bottom rule's editor, or ↑ and ↓ in the right-side panel.
Drag a rule card's title in the right-side panelMove 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.

SettingEffect
AutoUse the right-side dock when the file area is wide enough, and the bottom band when space is limited.
Bottom rule bandPlace rules above the footer. Click a rule to open its parameter editor.
Right-side dockList 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.

  1. Configure the rules to save.
  2. Click the Rule presets icon button on the rule panel.
  3. Enter a preset name at the top.
  4. 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.

ActionEffect
Click a preset nameReplace 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 ​

  1. Check the proposed names in the file area and the rename count in the status line.
  2. Correct names shown in red and resolve conflicts or Bad regex in the status line.
  3. 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.

User docs for tessoa