存储在Applescript中返回告诉Finder操作的引用

时间:2009-11-23 17:27:15

标签: applescript

我正在构建一个Applescript Droplet来自动化一些东西。我有以下几行:

tell application "Finder" to duplicate dropped

Dropped是对Droplet上删除的文件的引用。文档说这会返回对重复对象的引用。

我想将myVariable设置为返回的引用,但我在任何文档中都找不到如何实际执行此操作!

2 个答案:

答案 0 :(得分:1)

如果它是一个Droplet,请注意该参数是一个别名列表(您可以拖动多个文件!),如果您复制一个查找器项目,您将获得一个finder项目,而如果您复制更多比一个查找项目,您将获得一个查找项目列表。即复制的返回值取决于发送给它的参数。

AND ...取景器项目在取景器外部不是很有用。使用别名或POSIX路径会更好。

所以你可能需要像

这样的东西
on open (dropped)

tell application "Finder"
    set duplicate_Finder_items to duplicate dropped
end tell

-- convert the Finder reference for each duplicate item to an AppleScript alias

set duplicate_item_aliases to {}

if class of duplicate_Finder_items is list then
    repeat with i from 1 to number of items of duplicate_Finder_items
        set the end of duplicate_item_aliases to (item i of duplicate_Finder_items) as alias
    end repeat
else -- result was a single Finder item, not a list
    set duplicate_item_aliases to {duplicate_Finder_items as alias}
end if

repeat with f in duplicate_item_aliases
    set inf to (info for (f as alias))
    set n to name of inf
    display dialog "You duplicated a file. The duplicate is now known as " & n
end repeat

结束

答案 1 :(得分:0)

duplicate命令允许指定位置:

set theResult to duplicate reference ¬
     to insertion location ¬
     replacing boolean ¬
     routing suppressed boolean

参数,必填,类型,说明

直接参数,必需,参考,要复制的对象

替换,可选,布尔,指定是否替换目标中与要复制的项目同名的项目

路由已抑制,可选,布尔,指定是否自动应用项目(默认为false)。仅在复制到系统文件夹时适用。

转换为,可选,插入位置,对象的新位置