是否可以在AppleScript中为应用创建保存某种设置?
应该在脚本的开头加载设置,并将其保存在脚本的末尾。
示例:
if loadSetting("timesRun") then
set timesRun to loadSetting("timesRun")
else
set timesRun to 0
end if
set timesRun to timesRun + 1
display dialog timesRun
saveSetting("timesRun", timesRun)
第一次运行脚本时对话框显示1,第二次显示2 ...
函数loadSetting和saveSetting将是我需要的函数。
答案 0 :(得分:4)
脚本properties是持久的,但是每当您重新保存脚本时,保存的值都会被脚本中指定的值覆盖。运行:
property |count| : 0
display alert "Count is " & |count|
set |count| to |count| + 1
几次,重新保存,然后再运行一次。
如果要使用用户默认系统,可以使用do shell script "defaults ..."
命令或(如果使用Applescript Studio)default entry "propertyName" of user defaults
。在Applescript Studio中,您bind values to user defaults。
答案 1 :(得分:3)
这也很有效(查看提示的第一条评论):
http://hints.macworld.com/article.php?story=20050402194557539
它使用“默认”系统,您可以在〜/ Library / Preferences
中获得您的偏好答案 2 :(得分:3)
Applescript支持通过系统事件本地读取和编写plist:
use application "System Events" # Avoids tell blocks, note: 10.9 only
property _myPlist : "~/Library/Preferences/com.plistname.plist
set plistItemValue to get value of property list item "plistItem" of contents of property list file _myPlist
set plistItemValue to plistItemValue + 1
set value of property list item "plistItem" of contents of property list file _myPlist to plistItemValue
唯一的问题是它无法创建plist,因此如果plist的存在不确定,则需要将其包装在 try 上。
try
set plistItemValue to get value of property list item "plistItem" of contents of property list file _myPlist
on error -1728 # file not found error
do shell script "defaults write com.plistname.plist plistItem 0"
set plistItemValue to get value of property list item "plistItem" of contents of property list file _myPlist
end try