如何在AppleScript中回显值/变量?新手输出计数结果遇异常
解决你的AppleScript输出问题
嘿,我来帮你搞定这个问题~你遇到的核心问题是没有正确保存count的结果,也没有把变量值传递给shell命令,具体来说:
- 你现在的
todayToDos是一个存储了Today列表所有待办的列表对象,不是count出来的数字; - 直接在
do shell script的字符串里写变量名,shell只会把它当作普通文本,不会读取AppleScript变量的实际值。
修正后的代码
tell application "Things3" set todayToDos to to dos of list "Today" -- 把count的结果保存到变量里 set todoCount to count todayToDos -- 用字符串拼接把变量值传入shell命令 do shell script "echo " & todoCount & " > /Users/nonefirstnonelast/Desktop/Things.txt" end tell
为什么原来的代码不行?
- 变量混淆:你执行了
count todayToDos但没有把结果存下来,后续用的todayToDos还是原来的待办列表,而不是数字27。当shell尝试输出这个列表对象时,它无法被正确转换成文本,所以文件是空的。 - 变量传递错误:AppleScript不会自动把变量替换到双引号包裹的shell命令字符串里,必须用
&把变量和字符串拼接起来,这样才能把todoCount的实际值(27)传入echo命令。
额外小提示
如果以后要输出字符串类型的变量,建议用quoted form of来处理,避免空格或特殊字符导致shell命令出错,比如:
set myText to "Hello World!" do shell script "echo " & quoted form of myText & " > ~/Desktop/test.txt"
内容的提问来源于stack exchange,提问作者jake772
相关产品推荐
相关产品推荐

