我的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
这是什么问题,如何从脚本中获取结果?
答案 0 :(得分:1)
result
是AppleScript中的特殊标识符,您可能会在 Script Editor 中注意到该标识符以与您使用的其他变量名称不同的颜色/字体/样式打印。这是一个AppleScript属性,始终包含紧接在其之前执行的命令返回的值。
该解决方案最有可能选择result
以外的其他词作为您的标识符。
就您的脚本而言,您也不需要将变量声明为global
,因为脚本中没有范围问题,不需要访问其块之外的变量,这在以下情况下需要考虑创建处理程序或脚本对象。