当 121 条素材遇上批量重命名
这是工具箱系列的第二篇。上一篇写的是 当 OCR 遇上 SOP,讲的是怎么把散落的截图和文档变成可检索的东西。这一篇换个方向:问题不是”找不到内容”,而是”找到了也是一堆乱名字”。
主角是 Windows 上一个叫 PowerRename 的小工具。
一天 121 条,最先崩的是重命名
25年5月,我在某企业做新媒体运营的时候会涉及一些视频剪辑的工作。
那两个月的节奏是:同一条底稿,换开头、换字幕、换封面,批量复制出一堆变体去铺矩阵号。
这个量级下,最先崩的不是剪辑速度,是素材的名字。
素材进来的样子大概是这样的:
- 手机导出来的:
VID_20250512_143022.mp4 - 相机导出来的:
DSC00123.MOV - 微信群里存的:
微信图片_20250512143022.jpg - 剪映自动存的:
未命名草稿_2025-05-12-14-30-22.mp4 - 还有更绝的:
新建文件夹 (2)、最终版3、最终版3改
单看一条视频,乱一点也就乱一点,翻一下就找到了。但当你一天要处理一百多条、而且要反复回去复用旧素材的时候,名字就是索引。名字乱,等于没有索引。
为什么名字这么要紧
我当时用飞书搭了个知识库,把脚本、素材、上传、置顶文案复盘成一条批量生产流程。流程能不能跑起来,前提是文件名可预测:
- 一条脚本要对应一批素材,靠名字里的脚本编号能对上;
- 裂变出来的 121 条,要能按序号排序、按日期归档;
- 两周后回头复用某个镜头,得能靠关键词搜到,而不是靠回忆”那天那个……好像在第三个文件夹?”
说白了:名字不是给现在的我看的,是给一周后那个已经忘光的我看的。
PowerRename:微软塞进 PowerToys 里的那把刀
PowerRename 是 PowerToys 里的一个模块。PowerToys 是微软官方出的一套 Windows 效率工具集,免费、开源,装上之后会在文件资源管理器的右键菜单里多出一项 Rename with PowerRename。
真正让我留下来的,是三件事:
- 改之前先看结果。 上面填”查找”、下面填”替换”,中间实时列出每一行改完会变成什么样。没点应用之前,硬盘上一个字节都不动。
- 支持正则。 勾上
Use regular expressions,就能用捕获组,把VID_20250512_143022这种机器名里的日期和时间拆出来重新拼。 - 能自动编号。 替换值里写
${padding=3;start=1},它就会给选中的文件依次补上001、002、003——补零是自动的,不会排成1, 10, 11, 2。
还有一个救命细节:改错了不用慌,资源管理器里 Ctrl+Z 能撤销。
我的三步
第一步:先把脏东西洗掉
最浅的一层,纯文本查找替换,连正则都不用开。
比如把一批从微信里存下来的图片统一去掉前缀:
- 查找:
微信图片_ - 替换:(留空)
微信图片_20250512143022.jpg 就变成了 20250512143022.jpg。这一步的价值不是省时间,是让后面所有规则有一个稳定的输入。
第二步:统一前缀 + 自动编号(用得最多的一步)
选中一批要归到同一个脚本下的素材:
- 查找:
^VID_.*(勾上正则) - 替换:
20250512_脚本A_口播_${padding=3;start=1} - 应用到:仅文件名(扩展名不动)
于是:
VID_20250512_143022.mp4 -> 20250512_脚本A_口播_001.mp4
VID_20250512_143155.mp4 -> 20250512_脚本A_口播_002.mp4
VID_20250512_143401.mp4 -> 20250512_脚本A_口播_003.mp4
一次点击,几十条素材全部归位,扩展名原样保留。
第三步:名字里本来就有信息,就别盖掉
相机和手机导出的名字里通常已经带日期时间,与其盖掉,不如拆出来重排。用捕获组:
- 查找:
^VID_(\d{8})_(\d{6})$(勾正则,并勾上”匹配所有出现”) - 替换:
$1_$2_口播
VID_20250512_143022 → 20250512_143022_口播。
$1、$2 就是正则里那两对括号抓到的东西——年日月、时分秒。日期时间没丢,还多了语义。
换了 Mac 之后:右键就能做,不用装任何东西
后来我的主力机换成了 Mac。26 年再碰到批量重命名的活儿,我第一反应是去找”Mac 上的 PowerRename”,找了一圈才发现:这件事根本不用装工具。
在访达里选中一批文件,右键 →「重新命名…」(选中 N 个时会显示成「重新命名 N 个项目」),弹出的面板给了三种做法,和上面那三步几乎一一对应:
| 想干什么 | macOS 右键面板里怎么选 | 对应 PowerRename |
|---|---|---|
| 去掉 / 替换名字里的某段字 | 替换文本:”查找”填要删的,”替换成”留空就是删 | 纯文本查找替换 |
| 统一加前缀或后缀 | 添加文本:选”名称之前 / 之后” | 同 |
| 统一前缀 + 补零编号 | 格式 → 名称和计数器:自定义格式填前缀,”起始数字”填 1 | ${padding=3;start=1} |
| 统一前缀 + 不补零编号 | 格式 → 名称和索引 | ${start=1}(无 padding) |
| 按修改日期命名 | 格式 → 名称和日期 | $YYYY / $MM / $DD 日期变量 |
也就是说,我在 Windows 上最依赖的那招”统一前缀 + 补零编号”,在 Mac 上对应的就是「名称和计数器」——它会补前导零,生成 001、002、003,排序时不会出现 1, 10, 11, 2 这种乱序。「名称和索引」则是纯数字 1, 2, 3,不补零。
改错了同样是 Command + Z(或菜单栏”编辑 → 撤销重新命名”),整批撤销。
别去找”快捷指令”里的现成动作,我走错过路
我一开始跑偏了,先去 Automator 和”快捷指令”里翻。这里得澄清一句:右键菜单里那个「快速操作」(Quick Actions)子菜单,系统自带的那些是旋转、标记、创建 PDF、转换图像这类处理文件内容的动作,并不负责重命名。想批量改名,认准同一级菜单里的「重新命名…」就够了——除非你自己写一个(见下一节)。
边界:唯一做不到的是正则
右键这套只能做”整段查找替换”和”套模板编号”——没有正则,也就没法像 PowerRename 那样用捕获组,把 VID_20250512_143022 里的日期和时间拆出来重新拼。
我日常九成的重命名需求——洗掉脏前缀、统一前缀加编号——右键那一下就够了。剩下那一成,可以这么补。
想上正则怎么办:快速操作 + 一段脚本
办法是有的:用「快捷指令」新建一个快速操作(接收访达里的”文件或文件夹”),里面只放一个「运行 Shell 脚本」动作,让脚本去做正则。保存之后,访达右键 → 快速操作 → 就能直接调用。
把上面 Windows 那步 ^VID_(\d{8})_(\d{6})$ → $1_$2_口播 搬到 Mac 上,脚本是这么写的:
for f in "$@"; do
dir=$(dirname "$f"); base=$(basename "$f")
name="${base%.*}"; ext="${base##*.}"
new=$(printf '%s' "$name" | perl -pe 's/^VID_(\d{8})_(\d{6})$/$1_$2_口播/')
[ "$new" != "$name" ] && mv "$f" "$dir/$new.$ext"
done
嫌长可以用 zsh 自带的 zmv:
autoload -Uz zmv
zmv 'VID_(*)_(*).mp4' '${1}_${2}_口播.mp4'
zmv 加 -n 是空跑预览——只打印将要改成什么、不动手。所以流程是:先 zmv -n 看一眼对不对,确认了再去掉 -n 真跑。
能力是追平了,但有两样东西追不回来:
| PowerRename | 快速操作 + 脚本 | |
|---|---|---|
| 正则 / 捕获组 | ✅ | ✅ |
| 补零计数 | ✅ | ✅(右键本身就有) |
| 实时预览 | ✅ 面板里逐行显示 | ⚠️ 只能靠 zmv -n 空跑 |
| Ctrl/Command+Z 整批撤销 | ✅ | ❌ 脚本改名后访达撤销不可靠 |
| 上手成本 | 装个软件 | 写 + 长期维护脚本 |
| 上限 | 微软给什么用什么 | 任意逻辑(能读元数据、按内容改名) |
所以我的选择是:不为这一成需求去维护一个快速操作。真偶尔要拆字段重排,临时开终端 zmv -n 看一眼再执行,比养着一个脚本省心,也避开了”脚本改名撤销不了”这个风险。
边界,我不想把它说成万能
- 它只在 Windows 上。 PowerToys 是 Windows 工具,没有 Mac 版。我当时用的是 Windows 电脑;后来主力机换成 Mac,这套就用不了了——Mac 上的替代做法见上一节。
- 它只改名字,不动内容。 不碰文件内容、不改编码、不转格式——这反而是我敢放心用的原因。
- 撤销只管最后一步。 Ctrl+Z 能救回来,但别指望撤一长串;大批量操作前,可以自己检查完之后再让agent检查一遍确保无误。
为什么它也进了这个工具箱
和上一篇一样:卡住 → 硬扛 → 撞上一个工具 → 突然顺了。
我第一次意识到”重命名”是个真问题,是在连续两天翻不出一条旧镜头之后。它不是什么高深技术,但恰恰是这种没人会专门去教、小到不好意思开口问的东西,最浪费时间。
工具会过时,但”我当时被什么卡住、我是怎么判断该用什么工具的”不会过时。这是这个工具箱想记下来的东西。
附录
- PowerToys:微软官方 Windows 效率工具集,免费开源,支持 Windows 10 / 11。仓库
https://github.com/microsoft/PowerToys - PowerRename:其中的批量重命名模块。支持查找替换、正则表达式(ECMAScript 语法)、计数器
${padding=3;start=1}、文本大小写转换、实时预览、Ctrl+Z 撤销;可作用于文件名或仅扩展名,可包含/排除子文件夹。官方文档见微软 PowerToys 文档站。 - macOS 访达批量重命名:系统自带,无需安装。选中文件 → 右键「重新命名…」→ 替换文本 / 添加文本 / 格式(名称和索引、名称和计数器、名称和日期)。官方说明见 Apple 支持文档《在 Mac 上给文件、文件夹和磁盘重新命名》:
https://support.apple.com/zh-cn/guide/mac-help/mchlp1144/mac