mac automator 可批量提取照片、pdf、音视频等文件元数据,需配合 applescript 使用 mdls 命令;支持创建/修改时间、大小、类型等字段,但无法直接导出 excel,需转存为文本或 csv。

Mac 自带的 Automator 可以批量提取文件的元数据(如创建时间、修改时间、大小、类型、作者、相机型号、GPS位置等),但需结合系统原生能力与少量 AppleScript,不依赖第三方工具。它适用于照片、PDF、音频、视频等常见格式,对文档类文件(如 Word、Pages)效果有限,且无法直接导出为 Excel 表格——需额外步骤转存。
支持提取的元数据类型取决于文件格式
- 照片(JPEG/HEIC/RAW):可读取拍摄时间、设备型号、光圈快门、经纬度等完整 EXIF
- PDF:能获取标题、作者、主题、关键词、创建/修改时间(前提是 PDF 内嵌标准元数据)
- 音频(MP3/AAC/M4A):提取艺术家、专辑、时长、采样率、编码格式
- 视频(MOV/MP4):读取时长、分辨率、帧率、编码器、拍摄日期
基础工作流:一键导出为文本清单
适合快速查看或后续人工整理:
- 打开 Automator → 新建“工作流”
- 拖入“获取指定的 Finder 项目”,点击“添加”选中目标文件夹或文件
- 接“运行 AppleScript”操作,粘贴以下轻量脚本(自动读取每个文件的元数据并拼成文本):
on run {input, parameters}
set outputList to {}
repeat with f in input
try
set meta to do shell script "mdls -name kMDItemDisplayName -name kMDItemContentCreationDate -name kMDItemContentModificationDate -name kMDItemFileSize -name kMDItemContentTypeTree " & quoted form of (POSIX path of f)
set end of outputList to (text 1 thru -2 of meta) & return & return
on error
set end of outputList to "无法读取元数据: " & (name of f as text) & return & return
end try
end repeat
return outputList
end run
- 添加“存储输出为文件”,保存为
.txt,命名建议含日期(如元数据_20260706.txt)
进阶用法:按格式分类提取 + CSV 结构化输出
若需导入 Excel 或做进一步分析,推荐分两步:
- 先用 Automator + AppleScript 提取原始元数据(如上),保存为纯文本
- 再用终端命令
mdls配合awk或csvkit转为 CSV(例如):mdls -name kMDItemDisplayName -name kMDItemContentModificationDate -name kMDItemFileSize *.jpg | \ awk '/kMDItemDisplayName|kMDItemContentModificationDate|kMDItemFileSize/ {printf "%s,", $NF} !/kMDItem/ && NF>0 {print ""}' > metadata.csv此方式可控性强,避免 Automator 对 CSV 格式支持弱的问题。
注意事项与常见问题
- 元数据是否可用,取决于文件本身是否写入了该字段(如手机拍的照片一般自带 EXIF,截图或网页保存的 PNG 往往没有)
- macOS 的 Spotlight 元数据(
mdls命令所读)比文件属性面板显示更全,但部分字段(如 Word 文档作者)需文件启用“属性保存”功能 - 若提取结果为空,检查文件是否被锁定、是否在 iCloud 同步中未下载完成(本地无完整数据)
- 中文路径或文件名无需特殊处理,Automator 和
mdls均原生支持 UTF-8
不复杂但容易忽略。











