使用键盘快捷键执行服务时,Apple 脚本全局变量不起作用
Apple script Global variable not working when executing the service using a keyboard shortcut
我在 Automator 中创建了一项服务,每次都使用不同的颜色模式打开终端。
global terminalpos
on run {input, parameters}
try
get terminalpos
on error
set terminalpos to 0
end try
set colorsList to {"Pro", "Basic", "Grass", "Homebrew", "Man Page", "Novel", "Ocean", "Red Sands", "Silver Aerogel", "Solid Colors"}
set listSize to count of colorsList
if terminalpos is greater than or equal to listSize then
set terminalpos to 0
end if
tell application "Terminal"
set terminalpos to terminalpos + 1
set default settings to settings set terminalpos
do script ""
activate
end tell
end run
在自动机内部它工作正常。
但是当我使用键盘快捷键执行服务时它不起作用。似乎每次都设置了全局变量。
有什么想法吗?
谢谢
全局变量不是 "persistent" 跨应用程序启动。 link 是一种使数据从自动化应用程序持久化的简单方法。参见 here。请注意,在 applescript 应用程序中,您可以只使用 "property" 变量,但它们不适用于 automator 应用程序。
您无需执行任何操作即可看到 link 中的代码有效。为 "first run" 设置一个值,然后自动创建保存的数据文件。我喜欢将保存的数据文件的路径设置到您的首选项文件夹的想法,这样它就不会妨碍您的自动化应用程序将像您计算机上的所有其他应用程序一样工作。
我在 Automator 中创建了一项服务,每次都使用不同的颜色模式打开终端。
global terminalpos
on run {input, parameters}
try
get terminalpos
on error
set terminalpos to 0
end try
set colorsList to {"Pro", "Basic", "Grass", "Homebrew", "Man Page", "Novel", "Ocean", "Red Sands", "Silver Aerogel", "Solid Colors"}
set listSize to count of colorsList
if terminalpos is greater than or equal to listSize then
set terminalpos to 0
end if
tell application "Terminal"
set terminalpos to terminalpos + 1
set default settings to settings set terminalpos
do script ""
activate
end tell
end run
在自动机内部它工作正常。 但是当我使用键盘快捷键执行服务时它不起作用。似乎每次都设置了全局变量。 有什么想法吗?
谢谢
全局变量不是 "persistent" 跨应用程序启动。 link 是一种使数据从自动化应用程序持久化的简单方法。参见 here。请注意,在 applescript 应用程序中,您可以只使用 "property" 变量,但它们不适用于 automator 应用程序。
您无需执行任何操作即可看到 link 中的代码有效。为 "first run" 设置一个值,然后自动创建保存的数据文件。我喜欢将保存的数据文件的路径设置到您的首选项文件夹的想法,这样它就不会妨碍您的自动化应用程序将像您计算机上的所有其他应用程序一样工作。