我如何添加一个使用单个选定文件的 Finder 服务,对其执行 shell 脚本,然后将其显示为对话框 window?

How can I add a Finder Service that would use a single selected file, perform a shell script on it then display it as a dialog window?

我如何添加使用单个选定文件的 Finder 服务,对其执行 shell 脚本,然后将其显示为对话框 window?

我目前有 Automator 在 Finder 中接收文件和文件夹,然后 运行 一个 Applescript,其中包含以下内容:

on run {input, parameters}
    tell application "Finder"

        set filename to selection
        set filename to quoted form of POSIX file filename
        set theCMD to "/usr/local/bin/exiftool "
        set theScript to theCMD & filename
        set theResult to do shell script theScript
        display dialog theResult
    end tell
end run

我不断收到错误。目的是显示一个对话框 window,其中包含 Finder window 中单个选定文件的 Exif 元数据信息。我使用 brew 安装了 exiftool 来检索数据。

我是 applescript 的新手,不知道如何让它工作。感谢任何帮助。

Automator 服务将输入项传递给工作流,因此您无需执行任何其他操作即可获得选择。在 运行 AppleScript 操作中,input 参数是一个列表,因此您应该选择一个特定的项目或只是遍历所有项目:

on run {input, parameters}
    repeat with anItem in the input
        set anItem to quoted form of POSIX path of anItem
        set theResult to (do shell script "/usr/local/bin/exiftool " & anItem)
        display dialog theResult
    end repeat
    # return input
end run