0

我需要在 Keyboard Maestro 中设置一个变量,并且文档指出这可以使用 AppleScript 完成:

tell application "Keyboard Maestro Engine"
  make variable with properties {name:"My Variable", value:"New Value"}
end tell

我正在尝试将其转换为 appscript-rb 表示法,到目前为止我已经有了

Appscript.app('Keyboard Maestro Engine').
  make(:variable, properties={:name=>'var1', :value => 'val1'})

我在这里记录了很多成功的片段:http ://reganmian.net/wiki/appscript ,其中许多都遵循上面的模式,但是这个片段不起作用,它给出了“未知的关键字参数名称”。

4

3 回答 3

1

您可以使用默认写入和默认读取将变量存储在您自己的 plist 中。

于 2013-04-05T20:31:35.003 回答
1

您的命令语法错误(我知道,AppleScript 清晰且定义明确的语法很难想象!)。

命令应该是这样的:

#!/usr/bin/ruby

require "rubygems";
require "appscript";

kme = Appscript.app('Keyboard Maestro Engine');
kme.make(:new => :variable, :with_properties => {:name => "My New Variable", :value => "New Value 2"});

我发现这本使用 Ruby 编写 Mac 应用程序脚本的草稿有助于弄清楚如何将 AppleScript 代码转换为 ruby​​。

顺便说一句,如果您知道变量已经存在,则仅使用简单的参考 get/set 命令会更容易:

kme = Appscript.app('Keyboard Maestro Engine');
p kme.variables["My Variable"].value.get;
kme.variables["My Variable"].value.set("Next Value");
p kme.variables["My Variable"].value.get;
于 2013-04-07T06:15:08.783 回答
0

所以我想要一个更优雅的答案,但根据菲利普马丁的评论,这是一种有效的方式:

defaults write reganmian.net.researchr prelude "export LC_ALL=en_US.UTF-8;export LANG=en_US.UTF-8;declare -x LANG=en_CA.utf-8"
defaults write reganmian.net.researchr ruby "/usr/local/bin/ruby -KU"
defaults write reganmian.net.researchr path "/Users/Stian/src/folders2web"

进而

将此添加到键盘大师“执行shell命令

`defaults read reganmian.net.researchr prelude`
`defaults read reganmian.net.researchr ruby` `defaults read reganmian.net.researchr path`/dokuwiki.rb image

它有效,但看起来非常笨拙。

(有两件事会使这更容易,一是能够配置 Keyboard Maestro 用来执行 shell 命令的 shell - 这不是您的默认 shell,不尊重 ~/.profile,并且没有正确的代码页,路径等 - 另一个是允许在设置中定义任意变量,可以使用 %variable% 插入)。

于 2013-04-06T15:49:55.080 回答