为什么这行在脚本编辑器中运行良好但在命令行上运行不正常?

时间:2012-01-05 20:13:53

标签: applescript

该行:

set appPath to POSIX path of alias ":Applications:iTunes.app"

在AppleScript编辑器中正常工作并返回:"/Applications/iTunes.app/"

但是当我在终端中运行以下命令时:

osascript -e 'set appPath to POSIX path of alias ":Applications:iTunes.app"'

我得到:15:61: syntax error: File alias :Applications:iTunes.app wasn't found. (-43)

为什么?

1 个答案:

答案 0 :(得分:4)

我不确定你在哪里提出“:应用程序:iTunes.app”......但这不是一个有效的途径。在applescript中使用的冒号分隔路径始终以硬盘驱动器的名称开头。所以它应该像“Macintosh HD:应用程序:iTunes.app:”。我无法告诉你为什么它在Applecript编辑器中有效(我猜你很幸运;)),但我确定你是否以正确的方式尝试它。

请注意,我使用的路径以冒号结束,例如。 “Macintosh HD:应用程序:iTunes.app:”。一般应用程序是包文件,这意味着它们实际上是文件夹...而文件夹以冒号结尾。

请注意,当您将类似“:Applications:iTunes.app”的字符串强制转换为别名时(正如您所做的那样,首先使用别名alias),因为它是别名,这意味着路径中的文件必须存在。这是别名类型路径的定义。该文件必须存在。 由于路径错误导致文件无法存在,因此您会收到错误。

另一个注意事项:“posix路径”强制将对字符串起作用,所以你根本不需要“alias”这个词......虽然你可能会得到意想不到的结果,因为我提到你的路径的字符串部分是不正确的(抱歉继续这样说!)。

最后注意:这是一种可以找到文件正确的AppleScript风格路径的方法。只需运行它并在AppleScript编辑器中查看结果。如果您在代码中将“file”更改为“folder”,这也适用于文件夹。在应用程序上试一试,如果应用程序是一个包文件,它将以冒号结束。

(choose file) as text

无论如何,我希望当你继续使用你的苹果脚本时教你一些东西。

相关问题