PowerRename 实用工具

PowerRename 是一种批量重命名工具,它使你能够:

  • 修改大量文件的文件名,而不向所有文件提供相同的名称。
  • 对文件名的目标部分执行搜索和替换。
  • 对多个文件执行正则表达式重命名。
  • 在完成批量重命名之前,在预览窗口中检查预期重命名结果。
  • 完成后撤消重命名操作。

演示

在此演示中,文件名为“foo”的所有实例都会替换为“foobar”。 由于所有文件的名称都是唯一的,因此需要很长时间才能逐个手动完成此操作。 PowerRename 可实现单次批量重命名。 请注意,通过资源管理器 的“撤消重命名”(Ctrl+Z) 命令能够撤消上次更改。

PowerRename 演示。

PowerRename 窗

在选择文件 WindowsFile Explorer后,右键单击并选择 PowerRename 仅在 PowerToys) 中启用时显示的 (,窗口 PowerRename 将显示。 会显示所选项的数量,以及搜索和替换值、选项列表以及显示搜索结果和输入的替换值的预览窗口。

PowerRename 菜单屏幕截图。

搜索

输入文本或正则表达式以在所选内容中查找包含与输入匹配的条件的文件。 预览窗口中会显示匹配项。

替换为

输入文本以替换前面输入的值 的搜索 。 可以在 预览 窗口中查看原始文件名和重命名的文件名。

使用正则表达式

如果选中,则搜索值会解释为正则表达式 (regex)。 Replace 值还可以包含regex变量 (请参阅下面的示例) 。 如果未选中,则搜索值会解释为纯文本,以替换为替换字段中的文本。

有关设置菜单中用于扩展regex功能的“使用增强库”选项的详细信息,请参阅正则表达式部分

匹配所有匹配项

如果选中, 搜索 字段中的所有文本匹配项都将替换为“替换”文本。 否则,文件名中 搜索 文本的第一个实例将替换 (从左到右) 。

例如,假设文件名为:powertoys-powerrename.txt

  • 搜索:power
  • 重命名为:super

重命名的文件的值会生成:

  • 匹配未选中) (的所有匹配项: supertoys-powerrename.txt
  • 匹配选中的所有匹配项 () : supertoys-superrename.txt

区分大小写

如果选中,则在搜索字段中指定的文本仅在文本大小写相同时才与项中的文本匹配。 默认情况下匹配不区分大小写(不识别大写与小写字母之间的差异)。

应用于:仅文件名

操作仅修改文件扩展名 (不是文件扩展名) 。 例如:txt.txtNewName.txt

仅适用于:扩展

操作仅修改文件扩展名。 例如:txt.txttxt.NewExtension

包含文件

取消选择会导致操作不包括文件。

包含文件夹

取消选择会导致操作不包括文件夹。

包括子文件夹

取消选择会导致操作不包括文件夹中的文件。 默认情况下会包括所有子文件夹项。

文本格式设置

在四个选项之间进行选择,以将项转换为全部小写、全部大写、词首字母大写(名称的第一个字符大写)或每个字词首字母大写。

枚举项

将数字后缀追加到在操作中进行了修改的文件名。 例如:foo.jpg ->foo (1).jpg

使用文件创建日期和时间进行替换

可以根据下表输入变量模式,在“替换为”文本中使用文件的创建日期和时间属性。 在“替换为”字段中选择工具提示可查看和选择支持的模式。

变量模式 说明
$YYYY 年份,由四位或五位数字表示,具体取决于所使用的日历。
$YY 年,仅用最后两位数字表示。 会为一位数年份添加前导零。
$Y 年,仅最后一位数字表示。
$MMMM 月份的名称。
$MMM 月份的缩写名称。
$MM 月份,作为一位数月份前导零的数字。
$M 月份,作为数字数字,对于单位数月份,不带前导零的位数。
$DDDD 星期几的名称。
$DDD 星期几的缩写名称。
$DD 月份的日期,作为一位数天数前导零的数字。
$D 月份的一天,不带前导零的一位数天数。
$hh 小时数,为单位数小时前导零。
$h 小时,不带前导零的一位数小时数。
$mm 分钟数,单位数分钟前导零。
$m 分钟数,对于单位数分钟,不带前导零。
$ss 秒,单位数秒的前导零。
$s 秒,不带前导零的一位数秒。
$fff 以满三位数表示的毫秒数。
$ff 毫秒,仅用前两位数字表示。
$f 毫秒,仅由第一位数字表示。

例如,假设文件名为:

  • powertoys.png创建于 2020 年 11 月 11 日 (第二)
  • powertoys-menu.png创建于 2020 年 11 月 11 日 ( 11 月 3 日)

输入条件以重命名项:

  • 搜索:powertoys
  • 重命名为:$MMM-$DD-$YY-powertoys

重命名的文件的值会生成:

  • Nov-02-20-powertoys.png
  • Nov-03-20-powertoys-menu.png

“正则表达式”

简单搜索和替换足够用于大多数用例。 但在某些情况下,复杂的重命名任务可能需要更多控制。 正则表达式可提供帮助。

正则表达式为文本定义搜索模式。 它们可用于搜索、编辑和操作文本。 正则表达式定义的模式可以对给定字符串匹配一次、多次或根本不匹配。 PowerRename 使用在现代编程语言中通用的 ECMAScript 语法。

若要启用正则表达式,请选中“使用正则表达式”复选框。

注意: 你可能希望在使用正则表达式时检查 匹配所有匹配项

若要使用 Boost 库 而不是标准库,请在 PowerToys 设置中选中 “使用提升库 ”选项。 它支持扩展功能,如标准库不支持 的 lookbehind

正则表达式示例

简单匹配示例

搜索 说明
^ 匹配文件名开头 (零大小)
$ 匹配文件名末尾 (零大小)
.* 匹配名称中的所有文本
^foo 匹配以“foo”开头的文本
bar$ 匹配以“foo”结尾的文本
^foo.*bar$ 匹配以“foo”开头并以“bar”结尾的文本
.+?(?=bar) 匹配所有内容直到出现“bar”
foo[\s\S]*bar 匹配“foo”和“bar”之间的所有内容

匹配和变量示例。 捕获组在括号 ()中定义。 若要引用它们,请使用 $ 后跟数字: $1 将引用第一组、 $2 第二组等。

使用变量时,必须启用“匹配所有匹配项”选项。

搜索 替换为 说明
(.*).png foo_$1.png 将“foo_”追加到 PNG 文件的现有文件名
(.*).png $1_foo.png 将“_foo”追加到 PNG 文件的现有文件名
(.*) $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 分别在开头或末尾插入“foo” n 个字符
^.{n}.{n}$ 分别从开头或结尾剪裁 n 个字符

用于学习正则表达式的其他资源

联机提供了很好的示例/备忘单,可帮助你:

正则表达式教程 - 示例快速备忘单

ECMAScript 正则表达式教程

文件列表筛选器

可以在 PowerRename 中使用筛选器来缩小重命名结果的范围。 使用预览窗口可检查预期结果。 单击列标题可在筛选器之间切换。

  • 预览窗口中的第一列“原始”会在以下状态之间切换:

    • 选中:选择了文件进行重命名。
    • 未选中:未选择文件进行重命名(即使它符合搜索条件中输入的值)。
  • 预览窗口中的第二列“已重命名”可以进行切换。

    • 默认预览会显示所有选择的文件,其中只有与搜索条件匹配的文件才会显示更新后的重命名值。
    • 选择“已重命名”标题会将预览切换为仅显示将重命名的文件。 原始选择内容中的其他所选文件将不可见。

PowerToys PowerRename 筛选器演示。

设置

可按如下所述,从设置菜单的 PowerRename 选项卡配置其他选项:

设置 说明
将 PowerRename 显示在 定义是显示为默认选项之一,还是 PowerRename 仅在扩展上下文菜单中显示
为“搜索和替换”字段启用自动完成 基于以前的 PowerRename 使用,自动建议要在搜索和替换字段中使用的字词
最大项数 要显示的搜索和替换建议的最大数量
显示最近使用的字符串 打开 PowerRename 时,使用上次使用的值填充搜索和替换字段
使用增强库 启用扩展正则表达式功能。 有关更多详细信息,请参阅上面的正则表达式