在 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:")
如何在以下 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:")