如何告诉Applescript停止执行

时间:2011-12-23 22:46:56

标签: applescript

Applescript的“从列表中选择”用户交互有一个“取消”按钮 - 我希望这个“取消”告诉脚本立即停止执行。换句话说:

 set wmColor to choose from list {"Black", "Black for all", "White", 
     "White for all"} with prompt "What color should the watermark be?" 
     default items "White for all" without multiple selections allowed and 
     empty selection allowed
 if wmColor is false
     *tell script to stop executing*
 end if

似乎无法找到如何做到这一点 - 有谁知道怎么做?

5 个答案:

答案 0 :(得分:28)

错误号-128是“用户已取消”,并将停止脚本 - 例如:

if wmColor is false then
    error number -128
end if

答案 1 :(得分:10)

“return”告诉脚本停止执行:

display dialog "Do you want to exit this script?" with icon note buttons {"Exit", "Continue"}
if the button returned of the result is "Exit" then
  return
end if

答案 2 :(得分:2)

对于通过osascript调用的AppleScript的特定情况,可以终止它,通过执行以下操作将状态0返回给shell:

tell me to "exit"

通过执行以下操作终止,发出消息并返回状态1:

tell me to error "{your message}"

上面将这样的一行写成标准错误:

{scriptname}: execution error: {your message} (-2700)

这是一个取代神秘的“-2700”的例子,很可能是jefflovejapan正在寻找的东西:

tell me to error "Terminated by user" number 0

将其写入标准错误:

{scriptname}: execution error: Terminated by user (0)

并返回状态1.

我在阅读后通过实验了解到这一点: AppleScript Language Guide - error Statements

答案 3 :(得分:1)

我发现这适用于在应用程序中运行的脚本(例如,InDesign CS5.5):

repeat 100 times
    tell application ("System Events") to keystroke "." using command down
    delay (random number from 0.5 to 5)
end repeat

这是从answer修改的。

答案 4 :(得分:0)

您可以使用“退出”一词退出当前的应用程序。如果将脚本保存为应用程序,则可以使用此方法。

if wmColor is false
    quit
end if