2013-02-26 59 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脚本。

相关问题