如何找到使用AppleScript打开文件的应用程序名称?


1

我发现打开文件的AppleScript方法很方便,但是当我不希望使用默认选项时,通常无法猜测要使用的应用程序名称。

例如,我已经安装了Foxit PDF Reader来直接注释PDF。我一直无法猜测在open -a ??? my.pdf命令中使用什么。

我如何才能找到适用于任何常规应用程序的内容?也许有某种方法可以获取所有可用选项的列表?


这很简单:open -a "Foxit Reader" /path/to/file.pdf
user3439894 '16

@ user3439894,这解决了我的示例案例,但是Mateusz的答案确定了如何将其应用于一般案例。我想使用许多应用程序,而我不想为每个应用程序提出一个新问题。
史蒂文·豪威尔

由于我不必担心本地化,因此我个人不需要获取BundleIdentifier,因为我可以像以前展示的示例中那样清楚地看到Apps的名称和我的全部工作。无论如何,以Mateusz Szlosek演示的内容为基础,如果要在一个漂亮的列表中获取所有应用程序名称和BundleIdentifier,只需使用以下命令行即可。将其复制并粘贴到终端中:for f in /Applications/*.app; do echo "${f##*/} =>" "$(plutil -p "$f/Contents/Info.plist" | awk -F'[""]' '/BundleIdentifier/ {print $4}')"; done
user3439894 2016年

Answers:


3

您可以使用-boption和Bundle Identifier而不是Application Name。例如,要从Safari获取捆绑包标识符:

plutil -p /Applications/Safari.app/Contents/Info.plist | grep BundleIdentifier

结果你会得到 "CFBundleIdentifier" => "com.apple.Safari"

然后,您可以像这样使用它:

open -b com.apple.Safari /path/to/file

通常,您需要从Info.plist目录内的文件中获取捆绑标识符Application.app/Contents/

或者,如果需要,您可以通过以下方式获取应用名称:

plutil -p /Applications/PaintCode\ Trial.app/Contents/Info.plist | grep BundleName

输出:

"CFBundleName" => "PaintCode Trial"

这似乎是一个可行的选择。这些捆绑标识符将更难记且输入时间更长。对于福昕,捆绑标识符为com.foxitsoftware.FoxitReaderLite。如果没有办法获得较短的应用程序名称,那么bash别名可能是次佳的选择,即alias foxit="open -b com.foxitsoftware.FoxitReaderLite"
史蒂文·霍维尔

@ stvn66我已经在答案中添加了有关获取应用程序名称的信息。
Mateusz Szlosek '16

open -a "Foxit Reader" /path/to/file.pdfOP只是问什么时,为什么要经历那么多rigamarole !?
user3439894

因为某些应用程序的显示名称与捆绑软件名称不同。例如,它可以被本地化。
Mateusz Szlosek '16

好点子!+1 :)
user3439894 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.