我正在制作一个简单的AppleScript来制作iMovie项目文件的副本。我已将此属性添加到脚本中:
property iMovieProjects : alias (home directory of (system info) as string) & "Movies:iMovie Projects"
这给了我错误
文件别名Macintosh HD:用户:我的用户名:电影:未找到iMovie项目
正确的道路是什么?我尝试了iMovie Project.localized,但这也不起作用。
答案 0 :(得分:3)
试试这个,看起来你需要使用Finder。另外,我在获得主路径时添加了一点简化。
property iMovieProjects : ""
tell application "Finder" to set iMovieProjects to alias ((home as string) & "Movies:iMovie Projects")
编辑:根据mklement0& amp;的创意,提供不使用Finder的单行解决方案。 regulus6633
property iMovieProjects : alias ((path to movies folder as text) & "iMovie Projects.localized")
看来这个文件夹是某种特殊的包类型文件夹,这就是我们需要查找器正确解析它的原因。使用完整的.localized名称可以解决它。
答案 1 :(得分:2)
更新 :正如adamh发现的,别名错误的原因是因为文件夹的真实名称是“iMovie Projects.localized”。获取有关该文件夹的信息,您将看到它。
我想补充一点,更方便的方法是使用“path to”命令进入文件夹。使用它你几乎可以访问每个已知的文件夹。在您的情况下,我们可以直接进入Movies文件夹。您可以查看标准添加项的applescript字典,查看它知道的所有文件夹。因此,我将引用该文件夹如下。
set iMovieProjects to alias ((path to movies folder as text) & "iMovie Projects.localized:")
最后你会注意到我没有为iMovieProjects使用属性。这是因为当您编译脚本时,属性会将路径硬编码到脚本中...这意味着该脚本仅适用于此特定用户。如果该脚本由另一个用户使用,它仍然会在编译时指向该人的Movies文件夹。因此,我们不使用属性,脚本适用于任何用户。
祝你好运。答案 2 :(得分:0)
Update2 (谢谢,@ adamh):尽管iMovie项目文件夹名称在英语语言环境中的Finder中显示为"iMovie Projects"
,但实际的 - locale-independent - name为{ {1}}。 (如果您想通过其本地化名称引用该文件夹,请在"iMovie Projects.localized"
命令前加上set
,如@ adamh的答案的第一个代码段所示。)
您只需要更改括号的方式 - 传递给tell application "Finder"
的字符串必须完整地构建在括号内:
alias
Update1 :@ regulus6633非常重要,您不应该使用特定用户的路径初始化属性,因为它将被编译到脚本中。因此,上面的代码段将属性初始化为空字符串,然后在单独的property iMovieProjects : ""
set iMovieProjects to alias ( ¬
(home directory of (system info) as string) & "Movies:iMovie Projects.localized" ¬
)
语句中动态分配一个值 - 这将反映当前用户的路径。
您的原始语句无意中创建了一个包含2个元素的列表,其第一个元素是您的主目录的别名,其第二个元素是字符串“Movies:iMovie Projects”。
在{regulus6633的答案中演示了set ... to
命令的简化版本(同样需要括号括起来):
path to