如何结合使用if / else和Automator Loop

时间:2019-05-24 14:53:57

标签: applescript automator

我已经自动处理了徽标,但是需要能够处理可变数量的徽标。我已经在自动化工作流程中使用嵌套的applescript实现了此目的,但是循环无法执行整个脚本。

将徽标传递到“传入”文件夹,工作流/脚本将更改桌面以指示系统处于活动状态,抓取第一个文件,然后继续通过自动化程序操作格式化和分发文件。最后,循环将返回到开头,直到“传入”文件夹为空。

set FileAlias to (POSIX file "/Incoming") as alias

tell application "Finder"
    count files of entire contents of FileAlias
    if the result is 0 then

        quit application "_Logos"

        launch application "Reset_Desktop"
    else

        move first item of FileAlias to (POSIX file "/Scripts")

    end if
end tell

正如您将在脚本中看到的那样,如果收件箱为空,我要停止该过程。这可行,但是重置桌面的附加步骤失败。尽管如果我开始运行该过程时文件夹中没有文件,则台式机确实会重置。

2 个答案:

答案 0 :(得分:1)

我知道了。上面的响应通过编写事件以不同的顺序引导我到达那里。我还将Applescript分为两部分;一个出现在工作流程的开始,另一个出现在循环操作之前的结尾。

第一个Applescript:

    set FileAlias to (POSIX file "/Incoming") as alias   
    tell application "Finder"
        count files of entire contents of FileAlias
        if the result is 0 then
            null
        else
        move first item of FileAlias to (POSIX file "/Scripts") 
    end if
end tell

第二个Applescript:

set FileAlias to (POSIX file "/Incoming") as alias    
tell application "Finder"       
    count files of entire contents of FileAlias
    if the result is 0 then         
        launch application "Reset_Desktop"
        quit application "Logos"        
    end if      
end tell

答案 1 :(得分:0)

很难知道我的解决方案是否对您有用,因为我的系统上没有您所引用的两个应用程序来正确测试您的代码。同样,在AppleScript代码之前和之后都不知道您的Automator动作是什么,这又很难为您的问题提供确切的解决方案。

也许这是您所寻找的路线?

set fileAlias to (POSIX file "/Incoming") as alias

tell application "Finder"
    set fileCount to count files of entire contents of fileAlias

    repeat until fileCount is 0
        move first item of fileAlias to (POSIX file "/Scripts")
        delay 0.1
        set fileCount to fileCount - 1
        if fileCount is 0 then
            launch application "Reset_Desktop"
            quit application "_Logos"
        end if
    end repeat
end tell