在Finder中使用突出显示的文件作为Bash变量(Applescript,macOS 10.13)

时间:2017-12-11 22:06:28

标签: bash macos applescript automator finder

我想设置一个小程序,用于以非标准格式存档我的文件(例如非.zip / .cpgz / .tar),只使用Applescript和每种格式的命令行版本工具。我需要弄清楚的最后一件事是如何通过Applescript在Finder中获取当前突出显示的文件的路径,以便我可以将其传递给bash。

我已经搜索了一下,似乎无法通过搜索引擎或此论坛找到答案。我发现并且仍然发现Apple的文档有大约40/60的机会过于稀疏和/或过时,甚至根本不存在任何给定的主题,所以我选择在可能的情况下不使用它。请不要只链接到Apple文档页面,我们将非常感谢真实世界的示例。

目标平台是macOS 10.13.2,Automator 2.8,Applescript 2.7。

1 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点,还取决于如何选择 Finder 项目。如果在 Finder 中只选择了一个,则为以下示例:

set theTarget to POSIX path of (application "Finder"'s selection as string)

或者,如果路径名包含空格,请使用:

set theTarget to quoted form of POSIX path of (application "Finder"'s selection as string)

没有显示的示例,其他方式可能取决于它在代码的其余部分中的位置/位置以及是否选择了多个 Finder,但这是一个开始的地方。

BTW如果您从bash执行此 AppleScript ,而不是脚本编辑器,其他示例运行,则使用osascript中的bash运行上面显示的相同示例 AppleScript 代码,只需一个 Finder 中选择,它将是:

theTarget="$(osascript -e "POSIX path of (application \"Finder\"'s selection as string)")"

或者:

theTarget="$(osascript -e "quoted form of POSIX path of (application \"Finder\"'s selection as string)")"