macos - osascript 比脚本编辑器慢得多
问题描述
首先,我承认我开始使用 JXA(Mac os 的 Javascript 自动化)的新项目,但对 AppleScript 没有太多了解。
目前,我正在尝试使用JXA运行以下命令:
Application("System Events").processes.windows.name()
首先,我使用脚本编辑器来运行它。它工作得很好,我很快就得到了输出。
但是,根据我的用例,由于我想经常从我的一个 bash 脚本中获取此代码的输出,因此我尝试使用osascript执行它,如下所示
osascript -l JavaScript -e 'Application("System Events").processes.windows.name()'
但这一次,在控制台中打印结果需要几秒钟。
现在我的问题是,与脚本编辑器相比,为什么在 osascript 中执行相同的脚本需要太多时间?有没有办法优化它的性能?
解决方案
这是 JXA 解决方案:
var winList = Application("System Events").processes.whose({backgroundOnly: {'=': false} }).windows.name();
var winList2 = winList.reduce(
function(accumulator, currentValue) {
return accumulator.concat(currentValue);
},
[]
);
winList2 = winList2.filter(e => (e !== ""));
winList2.join(',')
那些 JavaScript 大师可能会提供更好的 JavaScript。
推荐阅读
- reactjs - 在应用程序的任何文件中更改时反应应用程序不会重新加载
- python - 配置文件首选项不适用于 Selenium Python
- python - 在 VSCode 中获取 python 函数文档字符串的快捷方式
- r - 如何计算R中多个标准差的平均值
- cplex - 解决方案只返回一些决策变量
- javascript - 如何将带有附加信息的多个文件附加到表单数据中?
- python - 内容更新时如何仅在 Python 中打印字符串?
- python - 如何找到numpy数组的每两行的平均值
- java - ERR 此实例已禁用集群支持
- javascript - 为什么我不能访问同一类的静态对象中的静态函数?