使用AppleScript移动文件

时间:2016-04-29 11:22:58

标签: macos applescript filepath

我正在尝试使用AppleScript移动文件。这是我使用的代码:

on adding folder items to this_folder after receiving these_items
    repeat with i from 1 to number of items in these_items
        set this_item to item i of these_items
        set the item_info to info for this_item
        set the item_path to the quoted form of the POSIX path of this_item

...
...   //irrelevant code here
...


       tell application "Finder"
         move POSIX file item_path to POSIX file "/Users/mainuser/Desktop/Books"
       end tell

    end repeat
end adding folder items to 

如果我使用item_path这样的常规路径替换/Users/mainuser/Desktop/Test/test.png,那么效果会很好。可能是我的问题的原因是什么?

2 个答案:

答案 0 :(得分:2)

these_items是一个alias说明符数组,不需要进一步强制

tell application "Finder"
     move this_item to folder "Books" of desktop
end tell

属性desktop始终指向当前用户的桌面。

顺便说一下:Finder不接受POSIX路径(斜杠分隔),只接受原生HFS路径(冒号分隔)。

PS:item_path不起作用的原因是报价 它只在do shell script

中需要

答案 1 :(得分:1)

使用:

on adding folder items to this_folder after receiving these_items
    tell application "Finder" to move these_items to folder "Books" of desktop
end adding folder items to

after receiving参数是AppleScript别名值的列表,这是Finder的move命令已经理解并知道如何使用的内容。虽然像move这样的应用程序命令接受不引用应用程序对象的值是不寻常的,但它并不是完全未知的;特别是对于像Finder这样的前OS X应用程序,其脚本支持完全是手写的,允许开发人员使其以对用户有用的方式工作,而不仅仅是由OS X等愚蠢的标准化框架所规定的方式工作。 Cocoa Scripting。