APPLESCRIPT - 如何一次运行多个任务? (不是1乘1)

时间:2013-09-10 09:22:07

标签: macos applescript

set holdthevolume to (path to resource "holdthevolume.scpt" in directory "Scripts")
run script holdthevolume

set copyfiles to (path to resource "copyfiles.scpt" in directory "Scripts")
run script copyfiles

按住音量。是一个在“重复”下运行的脚本。因此,在应用程序退出之前,ti永远不会结束。在这样做时,它永远不会通过该过程移动到第二部分“copyfiles”。如何完成并继续下一个任务,我该怎么做呢?

脚本holdthevolume.scpt是:

repeat
   set volume 7
   delay 0.01
end repeat

1 个答案:

答案 0 :(得分:0)

一种解决方案是将holdthevolume.scpt导出为Stay Open应用程序并启动它,这将为您提供单独的线程类型执行。

例如

set vol_app_path to (path to resource "holdthevolume.app" in directory "Scripts")

tell application vol_app_path to launch

set copyfiles to (path to resource "copyfiles.scpt" in directory "Scripts")
run script copyfiles

tell application vol_app_path to quit

..并且holdthevolume.app使用空闲处理程序而不是循环。

on idle
    set volume 7
    return 0.01
end idle

缺点是holdthevolume.app将在doc中显示。

或者你可以使用'doascript'命令探索“do shell script”,它也可以以非阻塞的方式工作。