我正在编写一个带有Applescript的小型Automator脚本。 Applescript运行一个shell脚本,将一些图像下载到指定的文件夹。 Automator脚本中的下一步是从这些图像中生成PDF。 小问题,在图像下载完成之前PDF的创建已经开始,所以我得到一个空的PDF文件。 如何让Automator等到Applescript完成下载后才能进入下一步?只有当AppleScript完成后才能继续Automator脚本
0
A
回答
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脚本。
相关问题
- 1. 我需要等到活动完成才能继续,但有时只有
- 2. 只有当按钮点击完成后,才能点击
- 3. 只有当另一个完成后才能运行函数
- 4. 只有在'else'后才能继续使用Javascript函数
- 5. 命令完成后继续执行linux shell脚本
- 6. 在PHP脚本完成后继续执行任务
- 7. 如何等到承诺完成后才继续循环
- 8. 只有当gobject.idle_add()函数终止时才有办法继续?
- 9. 只有完成读取序列后,Arduino才能做些什么?
- 10. 只有当两个文件存在时才继续程序C
- 11. MPMoviePlayer在流完成后继续播放
- 12. onCreate流程在完成后继续()
- 13. ajax请求完成后继续工作
- 14. 功能调用的子程序是否必须完成功能才能继续?
- 15. 直到脚本完成后文件才写完
- 16. 邮件“无法继续”的AppleScript功能
- 17. 的NodeJS,等到当前请求完成,然后继续(或)等到了firstFunction才去第二个功能
- 18. 等功能完成并返回响应然后继续forloop
- 19. JS在多次.load()后继续 - 功能完成
- 20. 退出PowerShell功能,但继续脚本
- 21. Automator,AppleScript或其他?
- 22. 只有在delayed_job成功完成后,我如何才能保存对象?
- 23. 只有当所有的异步操作完成后,我如何才能让我的应用程序继续运行?
- 24. PHP脚本404完成后
- 25. MacOS更新后AppleScript和Automator的问题
- 26. 只有在所有Mapper完成后才减少工作?
- 27. JavaScript表单验证,在继续之前未完成完整脚本
- 28. 如果功能没有完成,定时器是否继续
- 29. 如何确保信号处理程序完成,然后才继续程序?
- 30. 脚本在命令行后不能继续
你可以发布你的AppleScript代码吗?没有它,很难猜测可能的解决方案。 – 2013-02-26 09:47:38