在 AppleScript 中使用带有 POSIX 路径的“~”

Using "~" with a POSIX path in AppleScript

如何在以下 AppleScript 中使用 ~

info for POSIX path of "Users/[User]/Pictures"

脚本应该是通用的,但是如果我把Users/[User]换成~,那么脚本就变成了这样

info for POSIX path of "~/Pictures"

我收到目录不可用的错误消息。

感谢您的帮助。

AppleScript 中无需使用波浪号 (~),它是 shell.

中当前用户主文件夹的快捷方式

AppleScript 中有很多相对路径

path to desktop 

是当前用户桌面文件夹的别名说明符,相当于

alias "[startup volume]:Users:[current user]:Desktop"

图片文件夹的相对路径是

path to pictures folder  

其他路径

path to music folder
path to applications folder
path to home folder

等等

请查看标准添加词典以了解更多路径

对于一些相对路径,有一个参数来指定域

path to library folder from user domain -- alias "[startup volume]:Users:[current user]:Libary"
path to library folder from local domain -- alias "[startup volume]:Library"
path to library folder from system domain -- alias "[startup volume]:System:Library"

info for 是标准添加的一个非常古老的部分。自 Leopard 以来它已被弃用,但它仍在工作。最简单的形式是传递别名说明符:

info for (path to pictures folder )

~ 是 shell 的东西,所以它在这种情况下不起作用,但无论如何有一个更简单的方法,使用 path to:

info for POSIX path of (path to pictures folder)

不确定这个答案是否真的通用,但是由于 ~ 被 bash shell 扩展了,但我尝试使用扩展的结果作为路径和成功了。

info for POSIX path of (do shell script "echo ~/Pictures")

{name:"Pictures", creation date:date "Wednesday, July 8, 2015 at 6:33:09 PM", modification date:date "Wednesday, February 8, 2017 at 2:11:52 PM", size:102529438, folder:true, alias:false, package folder:false, visible:true, extension hidden:false, name extension:missing value, displayed name:"Pictures", default application:alias "Macintosh HD:System:Library:CoreServices:Finder.app:", kind:"Folder", folder window:{0, 0, 0, 0}, file type:"", file creator:""}

这对我来说是和 运行 一样的结果

info for POSIX path of (path to pictures folder)

就我而言,扩展 ~/ 很有用,因为在 ~/ 中查找文件夹的情况对于 Mac 来说并不标准。例子

info for POSIX path of (do shell script "echo ~/Projects")

{name:"Projects", creation date:date "Friday, June 17, 2016 at 11:08:50 AM", modification date:date "Wednesday, February 8, 2017 at 2:30:08 PM", size:130670100, folder:true, alias:false, package folder:false, visible:true, extension hidden:false, name extension:missing value, displayed name:"Projects", default application:alias "Macintosh HD:System:Library:CoreServices:Finder.app:", kind:"Folder", folder window:{0, 0, 0, 0}, file type:"", file creator:""}

但是按照之前的方法同样失败了。

info for POSIX path of (path to Projects folder)

Syntax Error
Expected "," but found property.

评论后更新

这适用于主目录中的 "non-standard" 文件夹。

info for alias ((path to home folder as text) & "Projects:")