PowerRename 是一种 Windows 批量重命名工具,可用于一次性快速重命名多个文件。 此 PowerToys 实用工具可帮助你:
修改大量文件的文件名,而不为所有文件提供相同名称。
对文件名的目标部分执行搜索和替换。
对多个文件执行正则表达式重命名。
在完成批量重命名之前,在预览窗口中检查预期重命名结果。
完成后撤消重命名操作。
小贴士
可以使用 AI 帮助 PowerRename在 中使用。
演示
在此演示中,文件名为“foo”的所有实例都会替换为“foobar”。 由于所有文件的名称都是唯一的,因此需要很长时间才能逐个手动完成此操作。
PowerRename 可实现单次批量重命名。 请注意,通过资源管理器 的“撤消重命名”(Ctrl+Z) 命令可以撤消上次更改。
PowerRename 窗口
在 WindowsFile Explorer 中选择文件后,右键单击并选择重命名为 PowerRename(仅在 PowerToys 中启用时才会显示)。 会显示所选项的数量,以及搜索和替换值、选项列表以及显示搜索结果和输入的替换值的预览窗格。
搜索内容
输入文本或正则表达式以在所选内容中查找包含与输入匹配的条件的文件。
预览窗格中会显示匹配项。
替换为
输入文本以替换先前输入的搜索值。 可以在预览窗格中查看原始文件名和重命名的文件名。
使用正则表达式
如果选中,则搜索值会解释为正则表达式 (regex)。 替换值还可以包含 regex 变量(请参阅以下示例)。 如果清除,则搜索值会解释为纯文本,以替换为替换字段中的文本。
有关扩展Boost功能的设置菜单中选项的详细信息,请参阅regex。
匹配所有出现的对象
如果选中,则搜索字段中文本的所有匹配项均会替换为替换文本。 否则,只会替换搜索文本在文件名中的第一个实例。
例如,假设文件名为:powertoys-powerrename.txt:
搜索:power
重命名为:super
重命名的文件的值会生成:
匹配清除的所有匹配项:supertoys-powerrename.txt
匹配选中的所有匹配项:supertoys-superrename.txt
区分大小写
如果选中,则在搜索字段中指定的文本仅在文本大小写相同时才与项中的文本匹配。 默认情况下,大小写匹配将不区分大小写。
应用对象:仅文件名
操作仅修改文件名称。 例如:txt.txt → NewName.txt。
应用对象:仅扩展名
操作仅修改文件扩展名。 例如:txt.txt → txt.NewExtension。
包含文件
清除会导致操作不包括文件。
包括文件夹
清除会导致操作不包括文件夹。
包括子文件夹
清除会导致操作不包括文件夹中的文件。 默认情况下会包括所有子文件夹项。
文本格式
在四个选项之间进行选择,以将项转换为全部小写、全部大写、标题大小写(句子的第一个字符大写)或每个单词首字母大写。
枚举项目
如果选择,则可以将以下模式用作替换为文本的一部分:
变量模式
解释
${}
一个简单的计数器,将从第一个重命名的文件的零开始。
${increment=X}
具有自定义增量值的计数器。
${padding=X}
一个计数器,其中包含该数字的指定前导零数。
${start=X}
具有自定义初始值的计数器。
还可以在同一替换字符串中使用多个计数器并组合自定义项。
例如,给定搜索文本 a 和一组文件:
a.jpg
ab.jpg
abc.jpg
替换为文本 Image_${padding=4;increment=2;start=10}_ 将生成以下内容:
Image_0010_.jpg
Image_0012_b.jpg
Image_0014_bc.jpg
随机字符串值
如果选择,则可以将以下模式用作替换为文本的一部分:
变量模式
解释
${rstringalnum=X}
自定义长度且附带大写字母、小写字母和 0-9 位数字的随机字符串。
${rstringalpha=X}
自定义长度且附带大写字母和小写字母的随机字符串。
${rstringdigit=X}
自定义长度且附带 0-9 位数字的随机字符串。
${ruuidv4}
符合 v4 规范的随机 UUID。
默认情况下,创建的随机字符串值会采用大小写混合。 可使用 PowerRename 提供的常规文本格式选项来调整生成行为。
如果希望创建附带大括号的 UUID 值,则可将 { 和 } 添加到替换为输入中,并与 ruuidv4 模式相应地结合使用:{${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/02(11 月 2 日)
powertoys-menu.png,创建于 2020/11/03(11 月 3 日)
输入条件以重命名项:
搜索:powertoys
重命名为:$MMM-$DD-$YY-powertoys
重命名的文件的值会生成:
Nov-02-20-powertoys.png
Nov-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$
匹配以“foo”结尾的文本
^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) 或 (\d{2})-(\d{2})-(\d{4})
$3-$2-$1
移动文件名中的部件:“29-03-2020”会变为“2020-03-29”
^(.{n})(.*) 或 (.*)(.{n})$
$1foo$2
分别从距离开头或结尾 n 个字符处插入“foo”
^.{n} 或 .{n}$
无
分别从开头或结尾截断 n 个字符
向 Copilot 寻求关于正则表达式的帮助
可以从 Copilot 获取 AI 辅助,以生成简单或复杂的正则表达式。 可以根据要求自定义提示以生成字符串。
以下文本显示了 Copilot 的示例提示:
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 常见问题解答。
用于学习正则表达式的其他资源
某些实用的示例/速查表可为你提供帮助:
正则表达式教程
带示例的 JavaScript 正则表达式教程
文件列表筛选器
可以在 PowerRename 中使用筛选器来缩小重命名结果的范围。 使用预览窗格可检查预期结果。
预览窗格中的第一列原始会在以下状态之间切换:
选中:选择文件进行重命名
清除:未选择文件进行重命名(即使它符合搜索条件中输入的值)
预览窗格中的第二列已重命名可以进行切换:
默认预览会显示所有选择的文件,其中只有与搜索条件匹配的文件才会显示更新后的重命名值。
选择“已重命名”标题会将预览切换为仅显示将重命名的文件。 原始选择内容中的其他所选文件将不可见。
设置
可从设置配置其他选项,如下所述:
设置
说明
将 PowerRename 显示在
PowerRename 是显示为默认选项之一还是仅显示在扩展上下文菜单中。
隐藏上下文菜单中的图标
隐藏上下文菜单中的 PowerRename 图标。
为“搜索和替换”字段启用自动完成
基于以前的 PowerRename 使用,自动建议要在搜索和替换字段中使用的字词。
最大项数
要显示的搜索和替换建议的最大数量。
显示最近使用的字符串
打开 PowerRename 时,使用上次使用的值填充搜索和替换字段。
使用 Boost 库
启用扩展regex功能。 有关更多详细信息,请参阅正则表达式。
安装 PowerToys
此实用工具是适用于超级用户的 Microsoft PowerToys 实用工具的一部分。 它提供一组有用的实用工具来优化和简化 Windows 体验,以提高工作效率。 要安装 PowerToys,请参阅安装 PowerToys。