在Applescript中引用两个单词的变量?

时间:2019-07-12 02:05:27

标签: macos applescript

我正尝试从我的计算机本地的名为“ Timing”的应用程序中获取一些数据,并将其发布到URL上以通知Webhook,从而实现一些过程自动化。

According to the Applescript integration with Timing,

从我成功执行的命令返回的time summary对象。当显示为警报时,该数据如下所示:

  

Can't get |times per project| of {id:5C6CD8C8-357F-4EE7-890C-5946DC03BBB9", overall total:1.18092493622303E+4, times per project:{Maintenance:81.091759443283, Youtube:4820.38001298904, |self improvement effors|:876.930474758148, Homework:2383.20326805115, |(no project)|:3647.64384698868}, overall total without tasks:1.18092493622303E+4, productivity score:0.388005592511, times per project without tasks:{Maintenance:81.091759443283, Youtube:4820.38001298904, |self improvement efforts|:876.930474758148, Homework:2383.20326805115, |(no project)|:3647.64384698868}, class:time summary}.

如您所见,(上面)有一个名为productivity score的属性,它是两个词。

当尝试从对象中获取此数据点时(我将用于通知Webhook:)

set newnewVar to productivity score of newvar
display alert newvar

显然这是行不通的,因为变量名是两个词。我尝试过用引号将名称括起来,并用其他字符将其括起来,但是似乎没有任何效果,the documentation for getting specific properties仅包含带有一个单词的变量的示例。

该问题的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

在AppleScript中,用户定义的变量通常不能包含空格。通常,它们以字母或下划线开头,然后只能包含字母,数字或下划线。如果用户定义的变量包含在垂直管道中,则只能包含空格。因此,以下所有都是有效的变量形式:alphaUnitslideRow3_tempItem|my variable|left_hand_vector

但是,任何创建和使用脚本定义的应用程序或脚本都可以创建具有多字名称的命令,类和属性。例如,如果您查看“系统事件”应用程序,将会看到Disk-Folder-File Suite有一个名为disk item的类,其属性类似于creation date。之所以起作用,是因为这些多字名称实际上由数字(四字符)代码表示:disk item实际上是'ditm',而creation date'ascd'。您经常会看到这些代码在错误字符串中弹出,如下所示:

  

"cannot make class ≪ditm≫ into..."

请确保您具有范围权限来调用字典-即位于调用脚本字典的应用程序或脚本的tell块中-并且多字名称应“正常工作”。编译后,您会看到它们以紫色突出显示,与未编译文本的红色稍有不同。您无需将字典术语包含在垂直管道中。如果这样做,它们将被视为用户定义的变量,并且失去其特殊的脚本用途。