Thinker

Would you like to react to this message? Create an account in a few clicks or log in to continue.
Thinker

Forum for story


    AppleScript语言初步

    markeloff
    markeloff
    无尽星空


    帖子数 : 322
    积分 : 5203
    威望 : 0
    注册日期 : 2011-09-06
    年龄 : 35
    地点 : Singapore

    AppleScript语言初步 - Page 2 Empty Re: AppleScript语言初步

    Post by markeloff 2019-07-05, 5:43 pm

    第四节 属性

    定义属性的语句如下:
    property Label : value
    其中,Label为属性的标签(相当于变量的名称),value为属性值。
    请注意,这个语句不是用来赋值的,而是用来初始化一个属性的! 属性的引用和修改方法和变量是一致的,比如set用来赋值。
    属性和变量的区别
    property countTimes : 0
    set countTimes to countTimes + 1
    display dialog "这是第" & countTimes & "次运行本脚本"


    第五节 预定义变量
    result:记录最近一个命令执行的结果,如果命令没有结果,那么将会得到错误
    it:指代最近的一个tell对象
    me:这指代段脚本。用法举例path to me返回本脚本所在绝对路径
    tab:用于string,一个制表位
    return:用于string,一个换行

    第六章 流程控制语句
    第一节 Tell语句
    Tell语句是最早接触且最重要的流程控制语句。它的作用是指明脚本要控制的程序对 象。Tell语句具有两种语法。
    简单形式:tell referenceToObject to statement
    复合形式:以tell referenceToObject开始,end tell结尾。中间包含命令语句。

    第二节 条件语句If
    If语句用于在满足一定条件的情况下执行语句,或者依据条件实现程序流程跳转。
    简单形式:if boolean then statement
    复合形式: if boolean1 then
    statement1
    else if boolean2 then
    statement2
    else
    statement3
    end if

    set mark to 99 --修改这里的数据来观察结果
    if mark ≥ 60 and mark < 80 then
    set response to "You passed the exam"
    else if mark ≥ 80 then
    set response to "Congratulations! You're smart"
    else
    set response to "Sorry. You failed"
    end if
    display dialog response

    第三节 循环语句
    退出循环的命令
    退出循环的命令非常简单,四个字母:exit(完整的为exit repeat)。请牢记

    无限循环
    repeat
    --do something
    end repeat
    限定次数循环
    repeat n times --do something
    end repeat
    “直到”循环
    repeat until boolean
    -- do something
    end repeat
    循环将反复执行,直到boolean为真!也就是说,boolean为假的时候循环执行,一旦
    boolean为真,退出循环。
    “当”循环
    repeat while boolean
    -- do something
    end repeat
    在boolean为真时,循环反复执行,一旦boolean为假退出循环。
    当循环和直到循环在一定意义上是正好相反的。
    变量循环
    repeat with loopVariable from startValue to stopValue by stepValue
    --do something
    end repeat
    其中stepValue可省略,省略时为默认为1;loopVariable无需事先定义。 其执行流程如下图,请注意各个变量的用途

    *List类型数据循环
    这个循环较为复杂,需要读者自己进一步探索,请焦急的读者略过此部分

    repeat with loopVariable in list
    --do something
    end repeat
    其中loopVariable无需事先定义,list是List型或者Record型数据。
    在循环体中,loopVariable将依次得到item 1 of list, item 2 of list....这样的指针(指向 list中的第几项)。
    请特别注意是指针!如果要得到list中的具体内容,使用contents of loopVariable来获得。
    在这个循环里,循环体将执行和list项目数量一样的次数。
    markeloff
    markeloff
    无尽星空


    帖子数 : 322
    积分 : 5203
    威望 : 0
    注册日期 : 2011-09-06
    年龄 : 35
    地点 : Singapore

    AppleScript语言初步 - Page 2 Empty Re: AppleScript语言初步

    Post by markeloff 2019-07-06, 4:25 pm

    第四节 Considering/Ignoring语句(用于文本比较)
    此语句可以在比较文本时,指定忽略或考虑某一属性(如大小写,空格等等)。
    considering attribute1 but ignoring attribute2 --compare texts
    end considering
    上面代码含义是考虑attribute1但忽略attribute2
    其中 but ignoring attribute2可以省略;
    considering和ignoring位置可以互换,但是end considering也要相应改成end ignoring,
    当然你可以选择最简略的方式──只输入end,让编译器自己补上considering/ignoring。 attribute应该为下面列表中的任意一个

    case 大小写
    diacriticals 字母变调符号(如e和é)
    hyphens 连字符(-)
    numeric strings 数字化字符串(默认是忽略的),用于比较版本号时启用它
    punctuation 标点符号(,.?!等等,包括中文标点)
    white 空格
    markeloff
    markeloff
    无尽星空


    帖子数 : 322
    积分 : 5203
    威望 : 0
    注册日期 : 2011-09-06
    年龄 : 35
    地点 : Singapore

    AppleScript语言初步 - Page 2 Empty Re: AppleScript语言初步

    Post by markeloff 2019-07-06, 4:32 pm

    第七章 基本用户交互

    第一节 简单对话框和输入框
    Display Dialog命令
    对于这个基本的对话框,在前面的章节中已经有所提及。它最简单的格式是:
    display dialog "对话框包含的内容"
    此命令将显示一个指定文字的、拥有确认和取消按钮的对话框,并且确认按钮是默认
    按钮──响应按下回车键(Enter/Return键)。
    接下来看看一个较为完整的对话框:
    display dialog "这是一个对话框" buttons {"好的", "明白"} default button "好的" with title "标题" with icon note giving up after 5

    具体的参数介绍如下:
     buttons 紧跟List型参数,指定对话框拥有的按钮名称,注意最多为三个
     default button 紧跟text型参数的某一个按钮名称,设定默认按钮
     with title 紧跟text,指定对话框的标题(省略时无标题)
     with icon 紧跟stop/note/caution中的一个或者file类型的路径,指定显示的图标
     giving up after 紧跟number型的整数,指定在number秒后自动消失对话框。


    带有输入框的对话框
    只需要添加default answer (+text)就可使 普通对话框升级为输入框。其中text可以用空文 本(直接键入两个引号);添加hidden answer true命令,可以隐藏输入文本(输入密码时 用)。此外,前面介绍的关于简单对话框的几 个参数仍然可用。
    对话框的返回值
    为了确定用户输入的文本和按下的按钮,我们需要通过对话框的返回值来实现。 display dialog命令的返回值总是一个Record,通常包含下面几项的一个或多个:
     text returned 用户输入的文本
     button returned 用户按下的按钮的名称(即显示的名称)
     gave up 是否自动超时消失(和giving up after命令相应)
    markeloff
    markeloff
    无尽星空


    帖子数 : 322
    积分 : 5203
    威望 : 0
    注册日期 : 2011-09-06
    年龄 : 35
    地点 : Singapore

    AppleScript语言初步 - Page 2 Empty Re: AppleScript语言初步

    Post by markeloff 2019-07-06, 4:39 pm

    第二节 警告对话框

    警告对话框一定程度上非常接近简单对话框,来看一下它的特色语法:
    display alert "这是一个警告" message "警告的信息" as warning
    结果如左下图。
    其中: message参数指定了补充信息(在对话框中以小字显示),as warning/critical/ informational指定了对话框的重要性(表面上看起来就是图标不同)。此外可用简单对话框 中的buttons(指定按钮), give up after(自动超时消失)参数。

    第三节 列表选择对话框
    这是一个特殊对话框,提供了一个列表供用户选择。语法如下Sad结果如上右图)
    choose from list {"备选一", "备选二", "备选三"} with title "这是一个列表选择框" with prompt "请做 出选择!" default items {"备选二"} with empty selection allowed and multiple selections allowed

    参数说明:
     直接参数 紧跟List类型参数,包含所有备选项
     title 紧跟text,指定选择框的标题
     prompt 紧跟text,指定提示信息
     default items 紧跟List,指定默认选择的项目
     empty selection allowed 后紧跟true表示允许不选
     multiple selections allowed 后紧跟true表示允许多选

    第四节 文件选择对话框
    选取文件名称Choose File Name

    选取文件夹Choose Folder

    选取文件Choose File


    第五节 其他用户交互
    beep 1
    delay 2
    say "Hello"






      Current date/time is 2024-04-28, 9:06 pm