我想查找是否使用AppleScript
安装了应用程序。
应用程序可以在同一台PC上安装不同的版本。
因此,应用程序的名称格式为" FooBar vXX.XX"
现在,当我尝试
时tell application "Finder" to get application "FooBar"
该脚本启动了一个弹出窗口,要求用户手动查找该应用程序。因为,我没有提供应用程序的全名 - 包括版本号。
我的查询是,如何在没有全名的情况下找到已安装的应用程序?这是必要的,因为我不知道安装了哪个版本。
在这种情况下我可以使用正则表达式 - 如何在此示例中使用它?
答案 0 :(得分:2)
您可以使用do shell脚本命令在命令行上使用聚光灯。您可以向聚光灯询问名称以某个字符串开头的所有应用程序的列表。应用程序确实具有'kMDItemContentType'键的'com.apple.application-bundle'值。我们可以使用kMDItemFSName来匹配文件名。您还可以使用kMDItemDisplayName属性。这是使用kMDItemFSName
的示例every paragraph of (do shell script "mdfind 'kMDItemContentType == com.apple.application-bundle && kMDItemFSName == FooBar*'")
另一种方法是当您知道应用程序的包标识符时。大多数情况下,捆绑标识符在应用程序的所有版本中保持不变,甚至是市长更新。例如,Terminal.app确实有一个包标识符com.apple.Terminal,它对所有版本都是相同的。搜索键是kMDItemCFBundleIdentifier:
every paragraph of (do shell script "mdfind 'kMDItemCFBundleIdentifier == com.apple.Terminal'")
注意:搜索字符串区分大小写; foobar与FooBar不同
如果您不知道应用程序的包标识符是什么,可以使用AppleScript执行此操作:
tell application "FooBar" to return id