在 Automator 工作流程中获取文件大小

Get file size in Automator workflow

正在 Automator 中创建服务(运行 shell 脚本 > Bash)以将 Finder 中选定文件的文件大小(以字节为单位)复制到剪贴板。我对bash不是很精通,看不出哪里错了。 目的是在右键单击文件时让它出现在 'services' 菜单中,然后我可以将文件大小粘贴到任何我喜欢的地方。 我在 Automator 中选择的选项是:

服务接收在 "Finder.app"

中选择的 "files or folders"

Shell /bin/bash

将输入作为参数传递

for f in "$@"
do
    getty=$(ls -l "$f")
done

IFS=' ' read -a newList <<< "${getty}"

echo -n ${newList[4]} | pbcopy

运行 Shell 脚本失败 - 1 个错误:

-: -c: 第 1 行:意外标记 `do

附近的语法错误

不使用 ls,而是使用 stat 获取文件大小。

stat -f '%z' "$f" | pbcopy

要将一组文件的名称和大小复制到剪贴板:

stat -f '%N %z' "$@" | pbcopy

为了让大家更清楚,解决方法是:

  1. 创建一个空的自动化脚本
  2. 添加操作“从 Finder 中获取所选元素
  3. 将输入作为参数添加操作“运行 shell 脚本”
  4. 使用以下脚本:
 stat -f  '%z' "$@" | pbcopy