# 强大的AppleScript\_顺便解决一个bug

{% embed url="https://v.douyin.com/r8fHw7E/" %}

{% embed url="https://www.bilibili.com/video/BV1914y1j7dq/" %}

Mac系统的AppleScript特别好玩

他有点像操作系统

给我们留的一个接口

我们可以通过他

来操作其他软件的一些功能

比方说这个例子哈

他是在操作Safari浏览器

启动（或激活）浏览器

或者呢

他获取浏览器里面的网页标题

再或者呢

我们还可以通过它

来执行一些键盘的按键

等等

所以呢像Alfred这个工具哈

里面其实很多插件都是基于AppleScript来写的

我们今天拿一个来举例子来看一个BUG

像这个：fi

他就可以获取到我们

最前面这个Finded（访达）窗口

打开的目录

然后用iterm进去

但是他有个BUG就有时候不灵敏

比如说我现在试一下啊 fi

大家看 它就没有进去

我再来试一遍

哎这就可以了

大家看 就很奇怪

那我们就来调一下这个BUG哈

我们首先呢把它的脚本拿出来

复制出来

然后呢

我们打开苹果自带的这个脚本编辑器

然后新建一个文稿

在这里边粘贴

把前面这个on alfred\_script(q) 去掉

把后面的end去掉直接运行

大家看啊

这是可以的

然后把这个关掉

大家看 他就不行了

而且这有个报错

他说艾特们遇到一个错误

不能获取window一无效的锁引

然后呢把这块选中了就是这行再报错

比如说

他在这一行找不到这个第一个窗口

我们仔细看他前面这个代码的话发现

他会在这创建一个窗口

所以他在这

可能这个窗口还没等完全打开

就执行了这句代码

后来呢我就在网上搜

找到了这样一段代码

它是循环等待这个

iTerm启动

但其实也不行

因为这个时候iTerm已经启动了

只是没有创建一个新的窗口

所以呢我们需要把这块再改一下

其实呢也很简单

我们就把这个

当做它循环的依据就行了

只要它这个窗口的数量是

我们就一直等待

好我们再来试一下

打开这可以我把它关掉

再来这就没有问题了

每次都是可以的了

所以呢

我们再把这一段代码放回到他这里边

在这

然后保存

这样的话呢

就可以保证每次启动

都可以正确的进入这个目录了
