使用Applescript复制文件夹组

使用Applescript复制文件夹组,applescript,Applescript,我一直在为我的工作做这个项目,其中包括将选定的信息从计算机备份到我们的一台服务器。到目前为止,我已经发布了几个问题,并得到了很多有价值的帮助,所以谢谢大家!我遇到的当前错误是当试图复制包含多个错误的选择时。如果我尝试复制一个文件夹,它就可以正常工作,但多个文件夹就不能正常工作。代码如下 display dialog "Please enter your augnet username" default answer "username" set username to (text returne

我一直在为我的工作做这个项目,其中包括将选定的信息从计算机备份到我们的一台服务器。到目前为止,我已经发布了几个问题,并得到了很多有价值的帮助,所以谢谢大家!我遇到的当前错误是当试图复制包含多个错误的选择时。如果我尝试复制一个文件夹,它就可以正常工作,但多个文件夹就不能正常工作。代码如下

display dialog "Please enter your augnet username" default answer "username"
set username to (text returned of result)

set server to "smb://orgs.augsburg.edu"

try
    mount volume server
on error
    display dialog "Either you are already connected, or there was a problem reaching the server. Please disconnect and try again."
end try

delay 3

tell application "Finder"
    set backup to make new folder at folder "ORGS:Information Technology:www:kb_images:Migration Testing:" with properties {name:username}
end tell

set theSelection to choose folder with prompt "Please select what you would like to transfer" with multiple selections allowed

tell application "Finder" to duplicate folder theSelection to backup

任何人都可以给我的帮助涉及多个文件夹的选择是非常感谢

允许多选的
选择文件夹…命令将返回指向文件夹的alias对象列表(当然,除非取消)。只需使用
repeat
循环迭代该列表:

set selectedFolders to choose folder with prompt "Yadda" with multiple selections allowed
repeat with selectedFolder in selectedFolders
    -- do something with the folder
end repeat
一般来说,如果对命令返回的内容有疑问,只需执行它并在AppleScript编辑器结果窗口中查看输出即可。在您的情况下,它看起来是这样的:

–这告诉您需要知道的一切:返回的数据是一个列表(用大括号括起来,
{
}
),包含由其HFS路径表示的别名对象。至于循环之类的基本功能,可以通过AppleScript编辑器的“帮助”菜单访问该功能,该功能包含您所需的所有详细信息

最后,我建议在复制操作中使用系统事件而不是Finder,因为它更快,并且在后台运行