PowerRename 实用工具
PowerRename 是一种批量重命名工具,它使你能够:
- 修改大量文件的文件名,而不为所有文件提供相同名称。
- 对文件名的目标部分执行搜索和替换。
- 对多个文件执行正则表达式重命名。
- 在完成批量重命名之前,请在预览窗口中检查预期的重命名结果。
- 完成后撤消重命名操作。
小贴士
可以使用 AI 帮助 创建正则表达式,以便与 Copilot在 PowerRename 中使用。
演示
在此演示中,文件名为“foo”的所有实例都会替换为“foobar”。 由于所有文件都是唯一命名的,因此需要很长时间才能手动逐个完成。 PowerRename 可实现单次批量重命名。 请注意,通过资源管理器 的“撤消重命名”(Ctrl+Z) 命令可以撤消上次更改。
PowerRename 窗口
在 WindowsFile Explorer 中选择文件后,右键单击并选择重命名为 PowerRename(仅在 PowerToys 中启用时才会显示)。 会显示所选项的数量,以及搜索和替换值、选项列表以及显示搜索结果和输入的替换值的预览窗格。
搜索内容
输入文本或正则表达式以在所选内容中查找包含与输入匹配的条件的文件。 你将在 “预览 ”窗格中看到匹配的项目。
替换为
输入文本以替换先前输入的搜索值。 可以在预览窗格中查看原始文件名和重命名的文件名。
Use regular expressions
如果选中,则搜索值会解释为正则表达式 (regex)。 替换值还可以包含 regex 变量(请参阅以下示例)。 如果清除,则搜索值会解释为纯文本,以替换为替换字段中的文本。
有关扩展Boost功能的设置菜单中选项的详细信息,请参阅regex。
匹配所有出现的对象
如果选中,“搜索”字段中文本的所有匹配项都将替换为“替换”文本。 否则,只会替换搜索文本在文件名中的第一个实例。
例如,假设文件名为:powertoys-powerrename.txt
:
- 搜索:
power
- 重命名为:
super
重命名的文件的值会生成:
- 匹配清除的所有匹配项:
supertoys-powerrename.txt
- 匹配选中的所有匹配项:
supertoys-superrename.txt
区分大小写
如果选中,则在搜索字段中指定的文本仅在文本大小写相同时才与项中的文本匹配。 默认情况下,大小写匹配将不区分大小写。
应用对象:仅文件名
操作仅修改文件名称。 例如:txt.txt
→ NewName.txt
。
应用对象:仅扩展名
操作仅修改文件扩展名。 例如:txt.txt
→ txt.NewExtension
。
包含文件
清除会导致操作不包括文件。
包括文件夹
清除会导致操作不包括文件夹。
Include subfolders
清除会导致操作不包括文件夹中的文件。 默认情况下会包括所有子文件夹项。
文本格式
在四个选项之间进行选择,以将项转换为全部小写、全部大写、标题大小写(句子的第一个字符大写)或每个单词首字母大写。
枚举项目
如果选择,则可以将以下模式用作替换为文本的一部分:
变量模式 | 说明 |
---|---|
${} |
一个简单的计数器,将从第一个重命名的文件的零开始。 |
${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
正则表达式
简单搜索和替换足够用于大多数用例。 但是,在某些情况下,复杂的重命名任务需要更多控制。 正则表达式 可在此方案中提供帮助。
正则表达式为文本定义搜索模式。 它们可用于搜索、编辑和操作文本。 对于给定字符串,正则表达式定义的模式可能匹配一次、多次或根本不匹配。 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 常见问题解答。
用于学习正则表达式的其他资源
有一些有用的示例/速查表可用于帮助你:
文件列表筛选器
可以在 PowerRename 中使用筛选器来缩小重命名结果的范围。 使用预览窗格可检查预期结果。
预览窗格中的第一列“原始”会在以下状态之间切换:
- 选中:选择文件进行重命名
- 已清除:未选择要重命名的文件(即使它符合搜索条件中输入的值)
预览窗格中的第二列“已重命名”可以进行切换:
- 默认预览会显示所有选择的文件,其中只有与搜索条件匹配的文件才会显示更新后的重命名值。
- 选择“已重命名”标题会将预览切换为仅显示将重命名的文件。 原始选择内容中的其他所选文件将不可见。
设置
可从设置配置其他选项,如下所述:
设置 | 说明 |
---|---|
将 PowerRename 显示在 | PowerRename 显示为默认选项之一,或仅在扩展上下文菜单中显示。 |
隐藏上下文菜单中的图标 | 隐藏上下文菜单中的 PowerRename 图标。 |
为“搜索和替换”字段启用自动完成 | 根据之前使用的 PowerRename自动建议搜索中使用的术语并替换字段。 |
最大项数 | 要显示的搜索次数最多并替换建议。 |
显示最近使用的字符串 | 打开 PowerRename时,填充搜索并将字段替换为使用的最后一个值。 |
使用 Boost 库 | 启用扩展regex功能。 有关更多详细信息,请参阅 正则表达式 。 |
安装 PowerToys
此实用工具是面向电力用户的 Microsoft PowerToys 实用工具的一部分。 它提供一组有用的实用工具来优化和简化 Windows 体验,以提高工作效率。 若要安装 PowerToys,请参阅 安装 PowerToys。