PowerRename 是 Windows 的批量重命名工具,可以一次快速重命名多个文件。这项 PowerToys 实用工具能够:
- 修改大量文件的文件名,而不必把所有文件设为同一个名字。
- 针对文件名中的指定部分搜索并替换。
- 使用正则表达式批量重命名。
- 在最终执行前,通过预览窗口检查预期结果。
- 完成后撤销重命名操作。
演示
演示中把文件名里所有的“foo”替换为“foobar”。由于每个文件的名称都不一样,逐个手动处理会花费很长时间。PowerRename 可以一次完成这批重命名。资源管理器的撤销重命名(Ctrl+Z)命令能够撤销上一次更改。

PowerRename 窗口
在 Windows 文件资源管理器中选中文件,右键单击并选择使用 PowerRename 重命名。只有在 PowerToys 中启用了该功能,这个选项才会出现。窗口显示所选项、搜索与替换值、选项列表,以及根据输入内容显示结果的预览窗格。

搜索内容
输入文本或正则表达式,在所选文件中寻找符合条件的文件。匹配项会出现在预览窗格中。
替换为
输入用于替换搜索内容的文本。在预览中可以同时查看原始文件名与重命名后的名称。
使用正则表达式
选中后,搜索值会被解释为正则表达式(regex);替换值也可以包含正则变量,见下文示例。不选中时,搜索值会被视为普通文本,并由替换字段中的文本替换。
设置菜单中使用 Boost 库选项提供扩展正则功能,详见正则表达式一节。
匹配所有出现的位置
选中后,搜索文本的所有匹配项都会被替换;否则只替换文件名里第一次出现的匹配。
例如文件名为 powertoys-powerrename.txt,搜索 power,替换为 super:
- 未选中匹配所有位置:
supertoys-powerrename.txt - 选中匹配所有位置:
supertoys-superrename.txt
区分大小写
选中后,搜索文本仅匹配大小写完全相同的文本。默认不区分大小写。
应用到:仅文件名
只修改名称部分。例如:txt.txt → NewName.txt。
应用到:仅扩展名
只修改扩展名。例如:txt.txt → txt.NewExtension。
包含文件
取消选中后,操作不包含文件。
包含文件夹
取消选中后,操作不包含文件夹。
包含子文件夹
取消选中后,操作不包含文件夹内的文件。默认包含所有子文件夹项目。
文本格式
可以在四种格式中选择:全部小写、全部大写、标题大小写(句子首字符大写),或每个单词首字母大写。
枚举项目
选中后,可以在替换为文本中使用以下模式:
| 变量模式 | 说明 |
|---|---|
${} |
从首个重命名文件的0开始的简单计数器。 |
${increment=X} |
使用自定义增量的计数器。 |
${padding=X} |
为数字设置指定数量前导零的计数器。 |
${start=X} |
使用自定义起始值的计数器。 |
同一替换字符串可以包含多个计数器,也可以组合自定义选项。例如,搜索文本为 a,文件为 a.jpg、ab.jpg、abc.jpg;替换为 Image_${padding=4;increment=2;start=10}_ 后得到:
Image_0010_.jpgImage_0012_b.jpgImage_0014_bc.jpg
随机字符串值
选中后,可以把以下模式作为替换为文本的一部分:
| 变量模式 | 说明 |
|---|---|
${rstringalnum=X} |
由大写字母、小写字母及0–9数字组成的随机字符串,长度可自定义。 |
${rstringalpha=X} |
由大写字母及小写字母组成的随机字符串,长度可自定义。 |
${rstringdigit=X} |
由0–9数字组成的随机字符串,长度可自定义。 |
${ruuidv4} |
符合v4规范的随机UUID。 |
生成的随机字符串默认混合大小写。可通过 PowerRename 的文本格式选项调整生成行为。如果需要带大括号的 UUID,可把 { 和 } 添加到替换输入中,组合成 {${ruuidv4}}。
使用文件创建日期与时间替换
在替换为中输入下表的变量模式,就可以使用文件的创建日期和时间。选择该字段的工具提示,可以查看并选择支持的模式。
| 变量模式 | 说明 |
|---|---|
$YYYY |
完整年份,根据日历以四位或五位数字表示。 |
$YY |
年份末两位;一位数时补前导零。 |
$Y |
年份最后一位。 |
$MMMM |
月份名称。 |
$MMM |
月份名称缩写。 |
$MM |
数字月份,一位数时补前导零。 |
$M |
数字月份,一位数时不补前导零。 |
$DDDD |
星期名称。 |
$DDD |
星期名称缩写。 |
$DD |
月内日期,一位数时补前导零。 |
$D |
月内日期,一位数时不补前导零。 |
$hh |
小时,一位数时补前导零。 |
$h |
小时,一位数时不补前导零。 |
$mm |
分钟,一位数时补前导零。 |
$m |
分钟,一位数时不补前导零。 |
$ss |
秒,一位数时补前导零。 |
$s |
秒,一位数时不补前导零。 |
$fff |
完整三位毫秒。 |
$ff |
毫秒的前两位。 |
$f |
毫秒的第一位。 |
例如,powertoys.png 创建于 2020年11月2日,powertoys-menu.png 创建于 2020年11月3日。搜索 powertoys,替换为 $MMM-$DD-$YY-powertoys,结果如下:
Nov-02-20-powertoys.pngNov-03-20-powertoys-menu.png
使用照片元数据(EXIF 或 XMP)替换
重命名照片时,可以在替换为字段使用 EXIF 或 XMP 元数据。在组合框中选择 EXIF/MDF 选项后,以下变量模式可用。工具提示提供所有支持的模式,便于快速插入。
| 变量模式 | 说明 |
|---|---|
$CAMERA_MAKE |
相机制造商名称 |
$CAMERA_MODEL |
相机型号名称 |
$LENS |
镜头型号名称 |
$ISO |
ISO感光度值 |
$APERTURE |
F值光圈 |
$SHUTTER |
快门速度 |
$FOCAL |
焦距(毫米) |
$FLASH |
闪光灯状态(开/关) |
$WIDTH |
图像宽度(像素) |
$HEIGHT |
图像高度(像素) |
$AUTHOR |
图像作者/艺术家 |
$COPYRIGHT |
版权信息 |
$LATITUDE |
GPS纬度 |
$LONGITUDE |
GPS经度 |
$ALTITUDE |
GPS海拔高度(米) |
$DATE_TAKEN_YYYY |
拍摄年份(4位) |
$DATE_TAKEN_YY |
拍摄年份(2位) |
$DATE_TAKEN_MM |
拍摄月份(01–12) |
$DATE_TAKEN_DD |
拍摄日(01–31) |
$DATE_TAKEN_HH |
拍摄小时(00–23) |
$DATE_TAKEN_mm |
拍摄分钟(00–59) |
$DATE_TAKEN_SS |
拍摄秒(00–59) |
$EXPOSURE_BIAS |
曝光补偿值 |
$ORIENTATION |
图像方向 |
$COLOR_SPACE |
色彩空间信息 |
$ALTITUDE |
GPS海拔高度(米) |
正则表达式
大多数场景中,简单的搜索和替换已经足够。但复杂重命名有时需要更多控制,正则表达式可以帮助完成这些任务。
正则表达式定义文本搜索模式,可用于搜索、编辑和处理文本。对于给定字符串,一个模式可能匹配一次、多次,也可能完全不匹配。PowerRename 使用现代编程语言中常见的 ECMAScript 语法。
要启用正则表达式,选中使用正则表达式。使用时通常还需要选中匹配所有出现的位置。
如果要使用 Boost 库代替标准库,在 PowerToys 设置中选中使用 Boost 库。它支持标准库不支持的扩展功能,例如后行断言(lookbehind)。
正则表达式示例
简单匹配示例:
| 搜索内容 | 说明 |
|---|---|
^ |
匹配文件名开头(零长度) |
$ |
匹配文件名末尾(零长度) |
.* |
匹配名称中的所有文本 |
^foo |
匹配以foo开头的文本 |
bar$ |
匹配以bar结尾的文本 |
^foo.*bar$ |
匹配以foo开头、以bar结尾的文本 |
.+?(?=bar) |
匹配bar之前的全部内容 |
foo[\s\S]*bar |
匹配foo与bar之间的全部内容,包含foo和bar |
以下是匹配与变量示例。捕获组由括号 () 定义。使用 $ 加数字引用捕获组:$1 是第一组,$2 是第二组,依此类推。使用这些变量时,必须选中匹配所有出现的位置。
| 搜索内容 | 替换为 | 说明 |
|---|---|---|
(.*).png |
foo_$1.png |
在PNG文件现有名称前添加foo_ |
(.*).png |
$1_foo.png |
在PNG文件现有名称后添加_foo |
(.*) |
$1.txt |
给现有文件追加.txt扩展名 |
(^\w+\.$)|(^\w+$) |
$2.txt |
仅在现有文件名没有扩展名时追加.txt |
(\d\d)-(\d\d)-(\d\d\d\d) or (\d{2})-(\d{2})-(\d{4}) |
$3-$2-$1 |
移动文件名的部分:29-03-2020变为2020-03-29 |
^(.{n})(.*) or (.*)(.{n})$ |
$1foo$2 |
分别在距名称开头或末尾n个字符处插入foo |
^.{n} or .{n}$ |
无 | 分别从名称开头或末尾截去n个字符 |
请 Copilot 协助生成正则表达式
可以向 Copilot 请求 AI 帮助,生成简单或复杂的正则表达式,并根据要求定制提示。原文示例提示如下:
Generate a regular expression to match a string that starts with "foo" and ends with "bar" and has at least six letters and two numeric characters in between them.
Copilot 基于 AI,可能给出意外结果或错误。详见 Copilot 常见问题。
学习正则表达式的其他资源
以下示例和速查资料可以提供帮助:
文件列表筛选器
可以使用筛选器缩小重命名结果范围,并在预览中检查预期结果。
- 原始列是预览第一列:选中表示文件参与重命名;取消选中则不参与,即使名称符合搜索条件。
- 重命名后列是第二列:默认显示所有选中文件,仅匹配搜索条件的文件显示更新后的名称。点击该列表头,可切换为只显示将被重命名的文件,原始选择中的其他文件会隐藏。

设置
设置中还可以配置以下选项:
| 设置 | 说明 |
|---|---|
| PowerRename显示位置 | 在默认右键菜单或仅在扩展右键菜单中显示PowerRename。 |
| 隐藏右键菜单图标 | 隐藏右键菜单中的PowerRename图标。 |
| 启动时恢复标志 | 启用后,记住上次选择的选项和标志,并在下次启动时恢复。 |
| 启用搜索与替换字段自动补全 | 根据以往使用记录,为搜索和替换字段自动建议文本。 |
| 项目数量上限 | 显示的搜索与替换建议的最大数量。 |
| 显示最近使用的字符串 | 打开PowerRename时,用上次使用的值填充搜索和替换字段。 |
| 使用Boost库 | 启用扩展正则功能,详见正则表达式一节。 |
安装 PowerToys
此工具属于面向高级用户的 Microsoft PowerToys 实用工具集。它提供一组用于调整和简化 Windows 使用体验、提高效率的工具。安装方法见安装 PowerToys。











暂无评论内容