我正在编写一个带有 Applescript 的小型 Automator 脚本。Applescript 运行一个将一些图像下载到指定文件夹的 shell 脚本。Automator 脚本的下一步是从这些图像生成 PDF。小问题,在图像下载完成之前 PDF 的创建已经开始,所以我得到一个空的 PDF 文件。我怎样才能让 Automator 等到 Applescript 完成下载才能进入下一步?
问问题
1190 次
2 回答
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 文件。
于 2013-02-27T07:34:54.553 回答
0
Automator会等到运行脚本操作完成。问题是,在没有看到您的代码的情况下,您的 AppleScript 正在使用某种异步下载方法——也许是告诉 Safari?-- 所以脚本在下载实际完成之前完成。使用同步方法,例如上述curl
(1)的建议,应该可以解决问题。
顺便说一句,使用 Run Script 动作调用do shell script
有点傻;您可以改用 Run Shell Script。
于 2013-03-31T18:40:25.547 回答