全局变量“未定义”

时间:2019-05-08 10:48:20

标签: applescript

我的AppleScript检查图像文件并输出某些信息。我需要此信息作为脚本的常规输出(stdout),以进行进一步处理(在InDesign脚本中)。但是,一旦在AppleScript中打开图像文件,用于保存结果的全局变量就会丢失。

这很好(但没用):

global result
set result to "initialised"

set imgfile to POSIX file "/Users/hell/Pictures/interesting_stuff.jpg" as alias

tell application "Image Events"
    -- start the Image Events application
    launch

    set result to "new text"

end tell

return quoted form of result

以下脚本是我想要的,但是会引发错误“未定义变量'结果'(-2753)”

global result
set result to "initialised"

set imgfile to POSIX file "/Users/me/Pictures/interesting_stuff.jpg" as alias

tell application "Image Events"
    -- start the Image Events application
    launch

    -- open image file
    set img to open imgfile

    -- here would go some commands about img instead of "new text"
    set result to "new text" 

    -- close image file
    close img
end tell

return quoted form of result

这是什么问题,如何从脚本中获取结果?

1 个答案:

答案 0 :(得分:1)

result是AppleScript中的特殊标识符,您可能会在 Script Editor 中注意到该标识符以与您使用的其他变量名称不同的颜色/字体/样式打印。这是一个AppleScript属性,始终包含紧接在其之前执行的命令返回的值。

该解决方案最有可能选择result以外的其他词作为您的标识符。

就您的脚本而言,您也不需要将变量声明为global,因为脚本中没有范围问题,不需要访问其块之外的变量,这在以下情况下需要考虑创建处理程序或脚本对象。