Applescript:将文件夹的所有内容复制到目录

时间:2015-07-17 14:27:16

标签: applescript

我有点绑定和Applescript noob。我一直在绊倒一个脚本,允许我将(TemplateFolder)的内容复制到目录中的所有客户端文件夹中,并添加了所有现有客户端文件夹内容被移动到其中的文件夹内的关键字。客户端标记为“旧文件”或类似的东西。到目前为止,我将用我的脚本包含图像来说明我想要实现的目标。提前感谢大家的帮助。

P.S。由于我没有所需的代表,我将不得不发布我的图片链接。

http://imgur.com/a/lL9q7

第一张图片是模板文件夹(我想将所有内容复制到每个客户端文件夹中的文件夹)。

第二个图像是现有客户端文件夹的一个示例,其中包含所有不良结构(或缺少结构)。

最终图像是预期结果,其中模板文件夹的内容被移动到客户端文件夹中,客户端文件夹的原始内容被移动到标题为“旧结构文件”的单独文件夹中。

以下是我在其他人的帮助下撰写的AppleScript文件,用于复制内容。然而,缺少组件和一些需要改变的元素;目前,applescript只是复制整个文件夹,而不仅仅是内容,它只是复制而不是插入,脚本不是整个目录的递归,并且没有将现有客户端文件移动到“旧结构文件”的功能夹。再次,非常感谢任何和所有帮助:)

on run
    set source_folder to choose folder with prompt "Select folder to be duplicated:" as string
    my do_main_script(source_folder)
end run

on open of source_folder_list
    repeat with i from 1 to number of items in the source_folder_list
        set this_folder_path to item i of the source_folder_list as string
        if last character of this_folder_path is ":" then
            my do_main_script(this_folder_path)
        end if
    end repeat
end open

on do_main_script(source_folder)
    tell application "Finder" to set source_folder to folder (source_folder)
    tell application "Finder" to set the target_folder to (parent of source_folder)

    if source_folder is not "" and target_folder is not "" then
        set new_folder_name to (name of source_folder as string) & " duplicate"
        set source_folder to source_folder as string
        set target_folder to target_folder as string

        my create_new_folder(target_folder, new_folder_name)
        my duplicate_folder_structure(source_folder, target_folder & new_folder_name & ":")
    end if
end do_main_script

1 个答案:

答案 0 :(得分:0)

在下面的脚本中,模板文件夹位于桌面上的固定位置,客户所选文件夹的所有内容都被移动到新文件夹"旧结构",之后,所有内容模板文件夹复制到客户文件夹中。如果我很清楚,这就是你要找的东西:

set Templatefolder to "HD:Users:my_user:Desktop:Template"
set CustomerFolder to (choose folder with prompt "Select customer folder to be re-organised")

tell application "Finder"
set CustomerData to every item of CustomerFolder
set OldF to make new folder in CustomerFolder with properties {name:"Old Strutucture Files"}
move CustomerData to OldF
set Newstructure to every item of folder Templatefolder
duplicate Newstructure to CustomerFolder
end tell