You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Automator向Shell脚本传参配合Exiftool批量重命名问题求解

Automator 配合 Exiftool 实现批量重命名的配置方案

你当前已完成的操作配置参考:
Automator操作截图

具体实现步骤如下:

  • 移除当前流程里多余的变量存储、拆分动作,直接将「获取所选的访达项目」的输出连接到「运行Shell脚本」动作。
  • 在「运行Shell脚本」的配置项里,将Shell选择为/bin/bash或者/bin/zsh,传递输入选项选择「作为自变量」,此时上游传入的所有选中文件会自动作为Shell的位置参数存在,天生就是从1开始计数:$1对应选中的第一个文件、$2对应第二个,以此类推,完全不需要额外调整数组起始键位。Shell默认的$0是当前脚本自身的运行路径,不会占用文件参数的索引位。
  • 直接在脚本编辑区写入Exiftool命令即可,全量处理所有传入文件时用"$@"指代所有传入的文件路径,该写法会自动适配带空格、特殊字符、中文的文件名,支持1-100个甚至更多文件的批量处理,不需要手动写循环。按EXIF拍摄日期重命名的基础示例代码如下:
# 重命名格式为年月日_时分秒,重名自动加序号,-overwrite_original表示不生成原文件备份,不需要可删除
exiftool -overwrite_original -d "%Y%m%d_%H%M%S%%-c.%%e" "-FileName<CreateDate" "$@"
  • 如果需要单独对第一个传入的文件执行特殊逻辑,直接引用"$1"即可;如果处理完第一个文件后要对剩下所有文件执行操作,先执行shift命令移除第一个位置参数,后续再调用"$@"就会自动获取从第二个文件开始的剩余所有文件。

配置注意事项

  • 所有文件路径的变量引用必须包裹双引号,否则文件名包含空格、特殊符号时会出现识别错误。
  • 不建议用Automator自带的变量拆分功能逐个传递文件,多文件场景下该方案稳定性差、运行效率低,用Shell自带的位置参数接收上游输入是兼容性最好的方案。
  • 如果已经将文件列表存为Automator数组变量传入Shell,需要从索引1开始读取元素的话,可以用${files[@]:1}语法截取数组(假设数组变量名为files),但该场景下完全没必要多做这一步变量存储操作。

内容的提问来源于stack exchange,提问作者Ralph Schipper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 13:51:10