Applescript 将文件夹设置为变量(如果存在)或创建新文件夹(如果不存在)的缩写';T
我知道Applescript 将文件夹设置为变量(如果存在)或创建新文件夹(如果不存在)的缩写';T,applescript,Applescript,我知道 if folder "Macintosh HD:Users:me:Desktop:thing" exists then set f to folder "Macintosh HD:Users:me:Desktop:thing else set f to make new folder at "Macintosh HD:Users:me:Desktop" with properties {name: "thing"} end 及 有捷径吗?当然,您可以设置变量的路径,但这仍然相当
if folder "Macintosh HD:Users:me:Desktop:thing" exists then
set f to folder "Macintosh HD:Users:me:Desktop:thing
else
set f to make new folder at "Macintosh HD:Users:me:Desktop" with properties {name: "thing"}
end
及
有捷径吗?当然,您可以设置变量的路径,但这仍然相当冗长。我不太了解“命令”背后的结构,甚至还不知道在哪里或寻找什么来找到更好的方法。这些伪目标导向但真正的查询结构有点令人困惑 在AppleScript中处理文件系统项是出了名的古怪(查找器上下文与系统事件上下文、HFS路径与POSIX路径) 我建议:
- 坚持使用POSIX路径(使用
作为根目录和路径分隔符)/
- 通过
,使用shell命令以方便和简洁do shell script
别名
实例返回:
CreateAndroGetFolder(posixPath)上的
执行shell脚本“mkdir-p”&引用posixPath的形式
返回别名(posixPath作为POSIX文件)
结束CreateGetFolder
将f设置为我的CreateAndroGetFolder(POSIX路径为(桌面路径)&“thing”)
AppleScript没有JavaScript和其他语言等三元运算符,因此很难在AppleScript中使if/else语句更简洁。mklement0的解决方案是您能得到的最干净的解决方案。
try
set f to folder "Macintosh HD:Users:me:Desktop:thing
on error
set f to make new folder at "Macintosh HD:Users:me:Desktop" with properties {name: "thing"}
end