我正在编写一个带有Applescript的小型Automator脚本。 Applescript运行一个shell脚本,将一些图像下载到指定的文件夹。 Automator脚本的下一步是从这些图像中生成PDF。 小问题,在完成图像下载之前已经开始创建PDF,所以我得到一个空的PDF文件。 我怎么能让Automator等到Applescript下载完成后再进入下一步呢?
答案 0 :(得分: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
或者,如果您愿意(或者根据代码的含义,这更有意义:
为所有文件执行shell脚本,在所有完成后创建一个更通用的deleteme文件,然后执行pdf内容。
答案 1 :(得分:0)
Automator 等待运行脚本操作完成。在没有看到你的代码的情况下猜测的问题是你的AppleScript正在使用某种异步下载方法 - 或许可以告诉Safari? - 所以脚本在下载实际完成之前完成。使用同步方法,例如curl
(1)的上述建议,应该解决问题。
顺便说一句,使用“运行脚本”操作来调用do shell script
有点傻;你可以改用Run Shell Script。