PowerRename 实用

PowerRename 是一个批量重命名工具,可用于:

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

演示

在此演示中,文件名""的所有实例 Pampalona 都替换为"Pampl进行"。 由于所有文件都是唯一命名的,因此需要很长时间来手动一个地完成。 PowerRename 启用单个批量重命名。 请注意,资源管理器的"撤消重命名" (Ctrl+Z) 命令可撤消上次更改。

:::no-loc (PowerRename) ::: 演示

PowerRename 菜单

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

:::no-loc (PowerRename) :::菜单屏幕截图

搜索

输入文本或 正则表达式 ,查找所选内容中包含与条目匹配的条件的文件。 你将在"预览"窗口中看到 匹配的 项。

替换为

输入文本以替换之前 输入 的与所选文件匹配的"搜索"值。 可以在"预览"窗口中查看原始 文件名和重命名 的文件。

选项 - 使用正则表达式

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

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

选项 - 区分大小写

如果选中,"搜索"字段中指定的文本将仅与项中的文本匹配(如果文本大小写相同)。 默认情况下,大小写匹配不 (无法识别大小写字母) 差异。

选项 - 匹配所有匹配项

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

例如,给定文件名 powertoys-powerrename.txt ::

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

重命名的文件的值将导致:

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

选项 - 排除文件

操作中不会包含文件。

选项 - 排除文件夹

操作中不会包含文件夹。

选项 - 排除子文件夹项

操作中不会包含文件夹中的项。 默认情况下,包含所有子文件夹项。

选项 - 枚举项

向在操作中修改的文件名追加数字后缀。 例如 foo.jpg :→ foo (1).jpg

选项 - 仅项名称

只有文件扩展名 (文件扩展名部分) 由操作修改。 例如 txt.txt :→ NewName.txt

选项 - 仅项扩展

只有文件扩展名 (文件扩展名部分) 由操作修改。 例如 txt.txt :→ txt.NewExtension

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

文件的创建日期和时间属性可用于根据下表输入变量模式,在"替换为文本"中。

变量模式 说明
$YYYY 由完整 4 位或 5 位数字表示的年份,具体取决于所使用的日历。
$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 月 11 日 (2020 年 11 月 3 日)

输入重命名项的条件:

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

重命名的文件的值将导致:

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

“正则表达式”

对于大多数用例,只需进行简单的搜索和替换即可。 但是,有时复杂的重命名任务可能需要更多的控制。 正则表达式 可以提供帮助。

正则表达式定义文本的搜索模式。 它们可用于搜索、编辑和操作文本。 正则表达式定义的模式可以匹配给定字符串的一次、多次或完全不匹配。 PowerRename 使用 ECMAScript 语法,这一语法在新式编程语言中很常见。

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

注意: 使用正则表达式时,可能需要检查 " 匹配所有匹配项"。

若要使用 Boost 库而不是标准库,请查看以下设置中的"使用 Boost 库PowerToys选项。 它启用标准库不支持 扩展功能,如后发功能。

正则表达式示例

简单的匹配示例

搜索 说明
^ 匹配文件名的开头
$ 匹配文件名的结尾
.* 匹配名称中的所有文本
^foo 匹配以"foo"开头的文本
bar$ 匹配以"bar"结尾的文本
^foo.*bar$ 匹配以"foo"开头且以"bar"结尾的文本
.+?(?=bar) 匹配所有内容(最多为"条形"
foo[\s\S]*bar 匹配"foo"和"bar"之间的所有内容

匹配和变量示例

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

搜索 替换为 说明
(.*).png foo_$1.png 将 _ "foo"预置到现有文件名
(.*).png $1_foo.png 将 _ "foo"追加到现有文件名
(.*) $1.txt 将".txt"扩展名追加到现有文件
(^\w+\.$)¦(^\w+$) $2.txt 仅在.txt扩展名时,才将"扩展名"追加到现有文件名
(\d\d)-(\d\d)-(\d\d\d\d) $3-$2-$1 文件名中的移动数字:"29-03-2020"变为"2020-03-29"

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

在线提供了一些很好的示例/备忘单来帮助你

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

ECMAScript 正则表达式教程

文件列表筛选器

筛选器可用于 缩小 PowerRename 重命名结果范围。 使用" 预览 "窗口检查预期结果。 选择要在筛选器之间切换的列标题。

  • 原始,"预览"窗口中 的第一 列在以下项之间切换:

    • 已选中:已选择要重命名的文件。
    • 未选中:文件未选择重命名 (即使它符合在搜索条件中输入的值) 。
  • 重命名后,可以切换" 预览"窗口中 的第二列。

    • 默认预览将显示所有选定的文件,仅与" 搜索条件 "匹配的文件显示更新后的重命名值。
    • 选择 "重命名" 标头将切换预览,以仅显示将重命名的文件。 原始选择的其他选定文件将不可见。

PowerToys :::no-loc (PowerRename) ::: 筛选器演示