Applescript:如何仅在满足特定条件时创建文件夹-脚本调整

Applescript:如何仅在满足特定条件时创建文件夹-脚本调整,applescript,Applescript,我需要帮助调整我制作的以下脚本。我的目标是,当选择项目1a和/或4d时,它们各自的.ai文件将复制到最前面打开的finder窗口的根文件夹中。当选择项目2b和/或3c时,它将查看为名为“TargetFolder”的文件夹打开的最前面的finder窗口。如果存在“TargetFolder”,则将2b.ai和/或3c.ai复制到此文件夹。否则,创建文件夹“TargetFolder”,然后将2b.ai和/或3c.ai复制到文件夹“TargetFolder” 提前非常感谢!有一个很棒的:-)以下代码:

我需要帮助调整我制作的以下脚本。我的目标是,当选择项目1a和/或4d时,它们各自的.ai文件将复制到最前面打开的finder窗口的根文件夹中。当选择项目2b和/或3c时,它将查看为名为“TargetFolder”的文件夹打开的最前面的finder窗口。如果存在“TargetFolder”,则将2b.ai和/或3c.ai复制到此文件夹。否则,创建文件夹“TargetFolder”,然后将2b.ai和/或3c.ai复制到文件夹“TargetFolder”

提前非常感谢!有一个很棒的:-)

以下代码:

  • 确保存在特定的目标文件夹,但仅当第二个和/或第三个项目列表项目在用户选择的项目中时

    • 也就是说,如果目标文件夹不存在,则会创建它
  • 随后在循环中处理所有选定项

属性TargetFolderName:“TargetFolder”
告诉应用程序“查找器”
#定义输入列表。
将inputList设置为{“1”、“2”、“3”、“4”}
#提示用户从列表中选择可能的多个项目。
将chosenList设置为从列表inputList中进行选择,允许多选
#如果未选择任何选项,则退出。
如果chosenList为false,则返回
#从Finder的前窗口获取活动文件夹。
将此文件夹设置为(前窗口的文件夹)作为别名
#测试输入列表中的第二项是否在所选项目中,
#然后才创建/确保目标文件夹的存在。
将targetFolder设置为缺少值
如果选择列表包含输入列表的第2项
或
chosenList包含inputList的第3项
#查看目标文件夹是否已经存在。
尝试
将targetFolder设置为此文件夹的文件夹TargetFolderName
结束尝试
#如果它还不存在,现在就创建它。
#注意:这可能会失败。
如果targetFolder缺少值,则
设置targetFolder以在此_文件夹中创建属性为{name:TargetFolderName}的新文件夹
如果结束
如果结束
#在循环中处理所有选定的项目。
#请注意,循环变量接收对每个列表项的*引用*。
使用chosenList中的chosenItemRef重复此操作
#解析列表项*reference*,以获取实际的*value*。
将chosenItem设置为chosenItemRef的内容
#获取与当前值匹配的源文件:
将sourceFile设置为alias(“Macintosh HD:用户:用户:桌面:源文件:”&chosenItem&“.ai”)
#现在测试该值并采取相应的措施。
如果选择的项目是输入列表的项目2
或chosenItem是inputList的第3项,然后#第2项或第3项:复制到targetFolder
#注意:`with replacement`盲目地替换现有的目标文件。
将源文件复制到targetFolder,并替换
其他#所有其他:复制到此#文件夹
使用替换将源文件复制到此\u文件夹
如果结束
结束重复
结束语

谢谢您的回复!不幸的是,结果不是我所期望的。仅供参考,我提供的1,2列表是我正在使用的简化版本。我在列表中有过多的项目名称可供选择,所以我不怀疑这会起作用。在选择项目2时,是否有办法将make folder块插入目标文件夹?@NoobUser:看一下我的更新答案-我最初将第2项与文字项目“2”的测试混淆了-我的错误。这就是你现在想要做的吗?是的,你的建议和我预期的一样有效,但仍然缺少一些东西。1.在
行中,如果chosenList包含inputList的项目2,那么
,当项目3和4被选中时,我如何让它们工作?2.当我用属性{name:TargetFolder}替换显示警告行时,如何仅在该文件夹不存在时使其为真?当前,如果该文件夹已存在,则代码会出错。我希望这是有道理的,很抱歉没有正确地发布。肯定是这样一个傻瓜。再次感谢您的帮助!:-)@NoobUser:看看我的更新,我想现在它涵盖了你的所有需求。今后,请尽可能准确地预先说明所有要求。Apple Script是一个挑剔的野兽——如果目标OS X 10.10或更高,考虑切换到它也太挑剔,但至少JavaScript是一种更为有效的语言。再次感谢你的帮助以及你的建议。我认为我的问题很具体,但我确实意识到我的不足之处。考虑到这一点,我想说一切正常,但我还有一个问题。确保存在特定的目标文件夹,但仅当第二个列表项位于用户选择的项中时。我希望列表中的项目3与选择项目2具有相同的效果。我该怎么做?
property TargetFolder : "TargetFolder"

tell application "Finder"
    tell application "Finder" to set the this_folder to (folder of the front window) as alias

    try
        set mylist to (choose from list {"1a", "2b", "3c", "4d"} with multiple selections allowed)
    end try

    --This should be applied ONLY if item 2b and/or 3c is chosen
    if not (exists folder TargetFolder of this_folder) then
        make new folder at this_folder with properties {name:TargetFolder}
    end if

    try
        if mylist contains "1a" then
            duplicate file "1a.ai" of folder "Source Folder" of folder "Desktop" of folder "user" of folder "Users" of startup disk to this_folder
        end if
        if mylist contains "2b" then
            duplicate file "2b.ai" of folder "Source Folder" of folder "Desktop" of folder "user" of folder "Users" of startup disk to folder "TargetFolder" of folder this_folder
        end if
        if mylist contains "3c" then
            duplicate file "3c.ai" of folder "Source Folder" of folder "Desktop" of folder "user" of folder "Users" of startup disk to folder "TargetFolder" of folder this_folder
        end if
if mylist contains "4d" then
            duplicate file "4d.ai" of folder "Source Folder" of folder "Desktop" of folder "user" of folder "Users" of startup disk to this_folder
        end if
    end try
end tell