如何用Apple Automator Service批量重命名视频并移除指定区间文本
嘿,我来帮你搞定这个批量重命名视频文件的需求!针对你要移除「第6个字符之后到最后一个LabelMe--之间所有内容」的要求,我给你准备了两种适合Mac的方案,包括你提到的Automator,还有更灵活的终端脚本:
方案1:用Automator快速操作(可视化操作)
这个方法适合喜欢图形界面的用户,设置一次之后右键就能用:
- 打开Automator,新建一个「快速操作」(旧版叫“服务”),在顶部设置「工作流程收到」为「文件或文件夹」,运行位置选「访达」。
- 从左侧动作库添加「获取选定的Finder项目」,勾选「忽略此动作的输入」。
- 再添加「运行Shell脚本」动作,把Shell改成
/bin/bash,「传递输入」选择「作为自变量」。 - 把下面的脚本粘贴到文本框里:
for file in "$@" do # 分离文件名、扩展名和路径 filename=$(basename "$file") ext="${filename##*.}" name="${filename%.*}" # 提取前6个字符 prefix="${name:0:6}" # 提取最后一个"LabelMe--"之后的内容 suffix="${name##*LabelMe--}" # 拼接新文件名 new_name="${prefix}${suffix}.${ext}" # 仅当新文件名和原文件名不同时才重命名 if [ "$filename" != "$new_name" ]; then mv "$file" "$(dirname "$file")/$new_name" fi done
- 保存这个快速操作,比如命名为「清理视频文件名」。之后在访达里选中要处理的视频,右键→「快速操作」→选择你保存的这个服务就可以批量处理了。
方案2:用终端脚本(灵活高效)
如果你习惯用终端,直接运行脚本更快捷:
- 打开「终端」应用,切换到视频所在的目录,比如你的视频在桌面的“视频文件夹”里,就输入:
cd /Users/你的用户名/Desktop/视频文件夹
- 运行下面的脚本(处理所有
.mov文件,要处理其他格式就把*.mov改成对应后缀,比如*.mp4):
for file in *.mov; do if [ -f "$file" ]; then name="${file%.*}" ext="${file##*.}" prefix="${name:0:6}" suffix="${name##*LabelMe--}" new_name="${prefix}${suffix}.${ext}" if [ "$file" != "$new_name" ]; then mv "$file" "$new_name" fi fi done
效果验证
拿你给的第三个示例文件名来说:
原文件名:0003-- LabelMe--A005_01241111_C003--LabelMe-- --Broll--messed up--LabelMe-- --Broll--Sitting at table.mov
处理后会变成:0003-- --Broll--Sitting at table.mov,完全符合你的要求——前6个字符保留,最后一个LabelMe--之后的内容保留,中间冗余部分全部移除。
注意事项
- 操作前一定要备份文件,避免意外情况导致文件丢失或命名错误。
- 脚本已经处理了文件名中的空格、特殊字符问题,不用担心报错。
- 如果Automator的快速操作没出现在右键菜单,去「系统设置→隐私与安全性→扩展→访达扩展」里勾选你创建的服务即可。
内容的提问来源于stack exchange,提问作者Chad
相关产品推荐
相关产品推荐

