Training
Module
Control file and folder handling in Power Automate for desktop - Training
Learn about the files and folders actions in Microsoft Power Automate for desktop.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
PowerRename is a bulk renaming tool that enables you to:
In this demo, all instances of the file name "foo" are replaced with "foobar". Since all the files are uniquely named, this would have taken a long time to complete manually one-by-one. PowerRename enables a single bulk rename. Notice that the Explorer's "Undo Rename" (Ctrl+Z) command makes it possible to undo the last change.
After selecting files in Windows File Explorer, right-click and select Rename with PowerRename (which will appear only if enabled in PowerToys). The selected items will be displayed, along with search and replace values, a list of options, and a preview pane displaying results of the search and replace values entered.
Enter text or a regular expression to find the files in your selection that contain the criteria matching your entry. You'll see the matching items in the Preview pane.
Enter text to replace the Search for value entered previously. You can see the original file name and renamed file name in the Preview pane.
If selected, the Search value will be interpreted as a regular expression (regex). The Replace value can also contain regex variables (see examples below). If cleared, the Search value will be interpreted as plain text to be replaced with the text in the Replace field.
For more information regarding the Use Boost library option in the settings menu for extended regex functionalities, see the regular expressions section.
If selected, all matches of the text in the Search field will be replaced with the Replace text. Otherwise, only the first instance of the Search for text in the file name will be replaced.
For example, given the file name: powertoys-powerrename.txt
:
power
super
The value of the renamed file would result in:
supertoys-powerrename.txt
supertoys-superrename.txt
If selected, the text specified in the Search field will only match text in the items if the text is the same case. Case matching will be insensitive by default.
Only the file name is modified by the operation. For example: txt.txt
→ NewName.txt
.
Only the file extension is modified by the operation. For example: txt.txt
→ txt.NewExtension
.
Clearing causes files to not be included in the operation.
Clearing causes folders to not be included in the operation.
Clearing causes files within folders to not be included in the operation. By default, all subfolder items are included.
Choose between four options to either convert items to be all lowercase, all uppercase, title case (first character of sentence is capitalized), or capitalize every word.
If selected, you can use the following patterns as part of the Replace with text:
Variable pattern | Explanation |
---|---|
${} |
A simple counter that will start from zero for the first renamed file. |
${increment=X} |
A counter with a customized incrementer value. |
${padding=X} |
A counter with a specified number of leading zeroes for the number. |
${start=X} |
A counter with a customized initial value. |
You can also use multiple counters in the same replace string and combine customizations.
For example, given a Search text a
and a set of files:
A Replace with text Image_${padding=4;increment=2;start=10}_
would produce the following:
If selected, you can use the following patterns as part of the Replace with text:
Variable pattern | Explanation |
---|---|
${rstringalnum=X} |
Random string with uppercase letters, lowercase letters and 0-9 digits, customized length. |
${rstringalpha=X} |
Random string with uppercase letters and lowercase letters, customized length. |
${rstringdigit=X} |
Random string with 0-9 digits, customized length. |
${ruuidv4} |
Random UUID according to v4 specification. |
By default, random string values created are mixed case. You can adjust the generating behavior with the general text formatting options that PowerRename provides.
If you wish to create UUID values with braces, you can add {
and }
to the Replace with input in combination with the ruuidv4 pattern accordingly: {${ruuidv4}}
.
The creation date and time attributes of a file can be used in the Replace with text by entering a variable pattern according to the table below. Selecting the tooltip in the Replace with field allows you to view and select from the supported patterns.
Variable pattern | Explanation |
---|---|
$YYYY |
Year, represented by a full four or five digits, depending on the calendar used. |
$YY |
Year, represented only by the last two digits. A leading zero is added for single-digit years. |
$Y |
Year, represented only by the last digit. |
$MMMM |
Name of the month. |
$MMM |
Abbreviated name of the month. |
$MM |
Month, as digits with leading zeros for single-digit months. |
$M |
Month, as digits without leading zeros for single-digit months. |
$DDDD |
Name of the day of the week. |
$DDD |
Abbreviated name of the day of the week. |
$DD |
Day of the month, as digits with leading zeros for single-digit days. |
$D |
Day of the month, as digits without leading zeros for single-digit days. |
$hh |
Hours, with leading zeros for single-digit hours. |
$h |
Hours, without leading zeros for single-digit hours. |
$mm |
Minutes, with leading zeros for single-digit minutes. |
$m |
Minutes, without leading zeros for single-digit minutes. |
$ss |
Seconds, with leading zeros for single-digit seconds. |
$s |
Seconds, without leading zeros for single-digit seconds. |
$fff |
Milliseconds, represented by full three digits. |
$ff |
Milliseconds, represented only by the first two digits. |
$f |
Milliseconds, represented only by the first digit. |
For example, given the file names:
powertoys.png
, created on 11/02/2020 (november second)powertoys-menu.png
, created on 11/03/2020 (november third)Enter the criteria to rename the items:
powertoys
$MMM-$DD-$YY-powertoys
The value of the renamed file would result in:
Nov-02-20-powertoys.png
Nov-03-20-powertoys-menu.png
For most use cases, a simple search and replace is sufficient. However, there may be occasions in which complicated renaming tasks require more control. Regular Expressions can help in this scenario.
Regular Expressions define a search pattern for text. They can be used to search, edit, and manipulate text. For a given string, the pattern defined by the regular expression may match once, several times, or not at all. PowerRename uses the ECMAScript grammar, which is common amongst modern programming languages.
To enable regular expressions, select Use Regular Expressions. Note that you'll likely want to select Match all occurrences while using regular expressions.
To use the Boost library instead of the standard library, select the Use Boost library option in the PowerToys settings. It enables extended features, like lookbehind, which are not supported by the standard library.
Simple matching examples.
Search for | Description |
---|---|
^ |
Match the beginning of the filename (zero size) |
$ |
Match the end of the filename (zero size) |
.* |
Match all the text in the name |
^foo |
Match text that begins with "foo" |
bar$ |
Match text that ends with "bar" |
^foo.*bar$ |
Match text that begins with "foo" and ends with "bar" |
.+?(?=bar) |
Match everything up to "bar" |
foo[\s\S]*bar |
Match everything between and including "foo" and "bar" |
Matching and variable examples. Capturing groups are defined in parentheses ()
. To refer to them, use $
followed by a number: $1
will refer to the first group, $2
to the second etc. When using the variables, "Match all occurrences" must be selected.
Search for | Replace with | Description |
---|---|---|
(.*).png |
foo_$1.png |
Prepends "foo_" to the existing file name for PNG files |
(.*).png |
$1_foo.png |
Appends "_foo" to the existing file name for PNG files |
(.*) |
$1.txt |
Appends ".txt" extension to existing file |
(^\w+\.$)\|(^\w+$) |
$2.txt |
Appends ".txt" extension to existing file name only if it does not have an extension |
(\d\d)-(\d\d)-(\d\d\d\d) or (\d{2})-(\d{2})-(\d{4}) |
$3-$2-$1 |
Move parts in the filename: "29-03-2020" becomes "2020-03-29" |
^(.{n})(.*) or (.*)(.{n})$ |
$1foo$2 |
Insert "foo" n characters from the beginning or the end, respectively |
^.{n} or .{n}$ |
nothing | Trim n characters from the beginning or the end, respectively |
There are some useful examples/cheatsheets available to help you:
JavaScript Regular Expressions Tutorial with Examples
Filters can be used in PowerRename to narrow the results of the rename. Use the Preview pane to check expected results.
Original, the first column in the Preview pane switches between:
Renamed, the second column in the Preview pane can be toggled:
Additional options can be configured in the settings, as described below:
Setting | Description |
---|---|
Show PowerRename in | PowerRename appears as one of the default options or only in the extended context menu. |
Hide icon in context menu | Hides the PowerRename icon in the context menu. |
Enable auto-complete for the search and replace fields | Automatically suggest terms to use in the search and replace fields based on prior uses of PowerRename. |
Maximum number of items | The largest number of search and replace suggestions to display. |
Show recently used strings | When opening PowerRename, populate the search and replace fields with the last values used. |
Use Boost library | Enable extended regex functionality. See Regular Expressions for more details. |
This utility is part of the Microsoft PowerToys utilities for power users. It provides a set of useful utilities to tune and streamline your Windows experience for greater productivity. To install PowerToys, see Installing PowerToys.
Windows developer feedback
Windows developer is an open source project. Select a link to provide feedback:
Training
Module
Control file and folder handling in Power Automate for desktop - Training
Learn about the files and folders actions in Microsoft Power Automate for desktop.