这是我第一次编写一个AppleScript,我想完成一个特定的用例,其中同一个脚本的多个调用能够访问和修改特定的全局变量/属性。
以虚拟脚本为例:
property counter : 0
set counter to counter + 1
delay 5
log counter
假设此脚本的第二个实例在第一个实例后1秒开始。我希望它在结束时输出2
,而不是1
如何完成这样的用例?是否可以使用为此目的创建的环境变量?
(如果我可以提供帮助,则不希望从文件读取/写入值)
答案 0 :(得分:0)
根据您的条件,我建议您使用UserDefaults。可以通过简单的shell命令访问它们:
defaults write [domain] [key] [value]
defaults read [domain] [key]
要在applescript中执行这些shell脚本,您可以使用:
do shell script "my_shell_code"
以下是您可以在脚本中使用的计数器的一些功能:
on RegisterCounter()
try
do shell script "defaults read com.himanshu.my_timer_script counter"
on error
do shell script "defaults write com.himanshu.my_timer_script counter 0"
end try
end RegisterCounter
on IncrementCounter()
my RegisterCounter()
do shell script ("defaults write com.himanshu.my_timer_script counter " & (quoted form of (((my GetValueOfCounter()) + 1) as text)))
end IncrementCounter
on GetValueOfCounter()
my RegisterCounter()
return (do shell script "defaults read com.himanshu.my_timer_script counter") as integer
end GetValueOfCounter
on ResetCounter()
try
do shell script "defaults delete com.himanshu.my_timer_script counter"
my RegisterCounter()
end try
end ResetCounter
将这些函数粘贴到脚本的开头或结尾,然后使用以下命令调用它们:
my FunctionName()