2017-02-27 199 views
0

我有一個循環Automator工作流程,在第一步中運行一個Applescript,創建一個包含N個帖子的列表。 N在這個工作流程的執行中有所不同。我希望工作流在N次重複之後退出。問題在於Automator中的循環組件不會接受任何輸入:唯一提供的選項是「循環運行一個靜態的,預定義的次數」或「詢問用戶每個循環是否需要繼續」。Applescript/Automator - 在給定的重複次數後停止循環?

目前我需要傳遞重複次數和所需的重複次數,然後檢查這些數字是否匹配。如果數字匹配,我執行下面的代碼:

tell me to quit(這是測試時,如果因爲它退出Automator本身而忘記禁用它,則會很痛苦)。

不是很優雅。有更好的方法嗎?

回答

1

如果這是「循環」操作的唯一有限功能集(似乎是),那麼最好在AppleScript中使用循環控制。既然你說你正在使用一個AppleScript動作,只需添加用戶輸入獲得的數量和使用重複循環塊(https://developer.apple.com/library/prerelease/content/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-127362

這裏有一個簡單的方法,以確保數量輸入:

set weHaveNumber to false 
set defaultNumberText to "5" 
set numberReturned to 0 

repeat until weHaveNumber 
    set q to display dialog "Enter number of loops:" default answer defaultNumberText buttons {"OK"} default button 1 
    try 
     if (text returned of q) is "" then error --this is here because empty string can be coerced to zero 
     set numberReturned to text returned of q as integer 
     set weHaveNumber to true 
    on error e 
     -- 
    end try 
end repeat 

--now use numberReturned, an integer, in your repeat loop