【问题标题】:Applescript: Copy all contents of a folder into every folder in a directoryApplescript:将文件夹的所有内容复制到目录中的每个文件夹中
【发布时间】:2015-07-18 15:36:37
【问题描述】:

我有点束缚和 Applescript 菜鸟。我一直在跌跌撞撞地通过一个脚本,该脚本允许我将 (TemplateFolder) 的内容复制到目录中的所有客户端文件夹中,添加的关键是所有现有客户端的文件夹内容都被移动到文件夹中的文件夹中客户端标记为“旧文件”或类似的东西。到目前为止,我将在我的脚本中包含图像以说明我想要实现的目标。提前感谢大家的帮助。

附:由于我没有所需的代表,因此我必须发布指向我的图片的链接。

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

【问题讨论】:

  • 实现此目的的另一种方法可能是转到 Finder 中的客户文件夹并选择所有文件,右键单击并制作现有材料的压缩存档,从而也节省空间。然后分发新模板,从源中复制它们并将它们粘贴到客户目录中......只是一个想法:-)

标签: applescript


【解决方案1】:

在下面的脚本中,模板文件夹在桌面上的固定位置,客户选择的文件夹的所有内容都被移动到一个新的文件夹“旧结构”,然后,模板文件夹的所有内容都复制到客户文件夹。如果我很好理解,这就是你要找的东西:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多