2013-02-26 57 views
0

我正在編寫一個帶有Applescript的小型Automator腳本。 Applescript運行一個shell腳本,將一些圖像下載到指定的文件夾。 Automator腳本中的下一步是從這些圖像中生成PDF。 小問題,在圖像下載完成之前PDF的創建已經開始,所以我得到一個空的PDF文件。 如何讓Automator等到Applescript完成下載後才能進入下一步?只有當AppleScript完成後才能繼續Automator腳本

+1

你可以發佈你的AppleScript代碼嗎?沒有它,很難猜測可能的解決方案。 – 2013-02-26 09:47:38

回答

0

你用什麼shell命令來下載?捲曲?這樣做的一個辦法是每次下載後添加一些shell腳本,如:

curl http://whatever/Your/Url/is/file1.xxx;echo ''>file1.deleteme 

然後確保你的AppleScript只找到了file1.deleteme文件並將其刪除後啓動PDF格式的一部分。當我用curl來做這件事時,它將不會在完成下載之前創建那個空文件。

的AS的部分可以用類似(危險,未測試)啓動:

--within outer loop for each file... 
tell application "Finder" 
repeat until exists (pathToDeleteMeFile)--this is built using basename + "deleteme" 
    delay 1--one second delay 
end repeat 
end tell 
--do pdf stuff here for that (each) file 

,或者,如果你喜歡(或者,如果這使得依賴於你的代碼是什麼樣子更有意義:

做外殼腳本所有文件,創建一個更通用的DELETEME文件後,他們所有完成,然後 PDF格式的東西。

0

Automator 確實等到運行腳本操作完成。如果沒有看到您的代碼,猜測問題是您的AppleScript正在使用某種異步下載方法 - 告訴Safari,也許? - 所以腳本在下載實際完成之前完成。使用同步方法,例如curl(1)的上述建議,應該解決問題。

順便說一句,使用運行腳本操作調用do shell script是有點愚蠢;你可以改用運行Shell腳本。

相關問題