从 osascript/Applescript 打印到标准输出

2024-05-14

我有一些正在执行的 AppleScript 代码osascript。这是一个更大的 Perl 程序的一部分。我希望能够从 AppleScript 打印到标准输出,然后让 Perl 脚本处理输出。但我无法从 AppleScript 中进行打印。我应该怎么办?

这是我尝试过的:

  • do shell script "echo Foo"。不输出 Foo。
  • 此 Google 网上论坛讨论 http://groups.google.com/group/alt.comp.lang.applescript/browse_thread/thread/d6fd2cd13927d5b3/5cba6813346a1750使用一些技巧来打开/dev/fd/1。对我来说,我收到错误“未找到文件 Macintosh HD:dev:fd:1”

这是我正在运行的脚本:

tell application "Safari"
        set window_list to every window
        repeat with the_window in window_list
                set tab_list to every tab in the_window

                repeat with the_tab in tab_list
                        set the_url to the URL of the_tab
                        -- I'd like to put a print statement here,
                        -- instead of display dialog
                        display dialog the_url
                end repeat
        end repeat
end tell

Since osascript会自动打印程序的最后一个值,我可以将 URL 收集到列表中并打印它。但是我的 Perl 脚本必须解析列表、删除引号等。似乎每行只打印一个 URL 应该更简单。

Thanks


我不知道如何做你所要求的事情,而且我不了解 Perl,但是我认为如果你在字符串而不是列表中收集 url,你可以使 Perl 的解析变得简单。每个 url 将位于字符串的单独行上。 Perl 应该能够很容易地将其转换为数组,然后用它做一些事情。像下面的苹果脚本一样。当然,您可以在 applescript 中使用不同的分隔符。我使用了“return”,但它也可以很容易地是“逗号”或您想要的任何其他字符。在 perl 中,将字符串更改为数组对您来说最简单的方法。

set urlString to ""

tell application "Safari"
    set window_list to every window
    repeat with the_window in window_list
        set tab_list to every tab in the_window

        repeat with the_tab in tab_list
            set the_url to the URL of the_tab
            set urlString to urlString & the_url & return
        end repeat
    end repeat
end tell

return text 1 thru -2 of urlString
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 osascript/Applescript 打印到标准输出 的相关文章

  • 如何从 Python 脚本中运行 AppleScript?

    如何从 Python 脚本中运行 AppleScript 问题说明了一切 显然是在 Mac 上 这篇好文章 http oreilly com pub a mac 2007 05 08 using python and applescript
  • 在 OS X 上以管理员权限运行脚本

    我已经尽力在 Stack Overflow 和互联网上找到许多脚本问题的解决方案 但我似乎找不到我需要的解决方案 我想要做的是创建一个更加自动化且点击次数更少的解决方案来删除系统上的所有移动缓存用户帐户 我一直在登录并手动转到用户帐户 然后
  • Excel 在 CSV 导出中导出数百个空列

    在开始之前 我使用的是 Excel for Mac 2011 我在使用特定的 Excel 电子表格时遇到问题 当我将任何活动工作表导出为 CSV Windows CSV 格式 时 它会导出约 200 个空白列以及 7 或 8 个填充列 我过
  • AppleScript:按名称在 Safari 中找到打开的选项卡并将其打开

    我正在寻找一种方法来查找网页是否从所有打开的选项卡中打开 如果是 则聚焦此选项卡 我尝试了这段代码 但显然这根本不起作用 set closeURLs to http www yahoo com repeat with theURL in c
  • Swift NSScriptCommand 执行默认实现

    我在 Objective C 中使用了这段代码 implementation KDOrderInfo id performDefaultImplementation NSString theRequest self directParame
  • 使用 JavaScript 代替 AppleScript 实现邮件规则自动化

    我正在尝试使用 Javascript 自动化而不是 AppleScript 构建 Mail app 规则 在 OS X Yosemite 上 但我停留在基础知识上 我在 AppleScript 中看到这段代码 using terms fro
  • 如何使用 AppleScript 或 Lua 在 Calculator.app 上的结果后执行 ALT + TAB

    I use the Calculator app and after hitting the ENTER key I would like it to automatically do an ALT TAB to go to the pre
  • 如何使用 Applescript 更改首选项窗格滑块值?

    我正在尝试创建一个 AppleScript 来设置输入音量 of the Input类别下的Sound菜单中系统偏好设置 如何改变 Slider 的值 tell application System Preferences activate
  • 如何在 Mac 中创建批处理文件?

    我需要在工作中找到一种解决方案来每天备份特定文件夹 希望备份到 RAR 或 ZIP 文件 如果是在电脑上的话我早就做了 但我不知道如何在 Mac 上实现它 我基本上想要实现的是可以使用可执行文件运行的自动化任务 它可以 压缩特定目录 Vol
  • 如何从 bash 脚本中识别当前的终端模拟器?

    我有一个脚本可以在 OS X 终端应用程序中打开一个新选项卡 并且我正在尝试添加对 iTerm2 的支持 不幸的是 在两个终端模拟器中打开选项卡的方法不同 我如何知道这两个中的哪一个正在被使用或打开 以有条件地运行正确的脚本 我不确定如何区
  • 如何在 Mac OS X Leopard 中检测用户所在的空间?

    Mac OS X Leopard 有一个名为 Spaces 的虚拟桌面实现 我想要以编程方式检测用户当前所在的空间 可可是优选的 but AppleScript 是可以接受的如果没有其他办法的话 我见过几个 AppleScript 实现 但
  • 如何在 macOS 沙盒环境中从 C++ 运行 AppleScript 而不会侵犯权利

    我正在尝试使用AppleScript来控制ApplePhotos来自 QT C 应用程序中的应用程序 该应用程序必须在 macOS App Store 所需的沙箱环境中运行 我尝试通过 QProcess 启动来运行 AppleScripto
  • Mac OS 登录项是否带有参数?

    在 Mac OS 中 我创建了一些 AppleScript 来添加和删除启动应用程序 帐户 系统窗格下的 登录项 bin bash usr bin osascript e tell application System Events to
  • 使用邮件规则和 Applescript 将 vcard 添加到联系人

    我通过特定的电子邮件地址收到了很多客户电子名片 我想通过邮件规则和 AppleScript 自动将电子名片添加到我的联系人中 我搜索了很多并找到了一些东西 我稍微修改了一下 并且打开和添加过程运行良好 但只有当我选择一个文件时 我无法将文件
  • 如何查找正在执行的 AppleScript 的文件名

    如何找到正在执行的 AppleScript 的名称 原因 我想创建一个根据文件名更改其行为的脚本 就像是 if myname is Joe then ACTION1 else if myname is Frank then ACTION2
  • 使用 AppleScript 设置窗口位置

    我正在尝试使用 AppleScript 设置 Messages app 聊天窗口的位置 tell application System Events set position of window 1 of application Messa
  • 用于编辑代码的 Automator 到 Applescript

    只是想知道我是否可以将 Automator 中的 看我做 事件转换为 applescript 然后编辑生成的代码 我有一个在 Google 中输入查询 即 Apple1 的记录 但我希望查询为记录的每个循环增加 因此结果是 Apple1 然
  • 如何获取 iTunes 选择的文件路径

    我正在尝试使用 AppleScript 确定在 iTunes 中选择的曲目的路径 貌似不是该公司的财产track班级 谁能告诉我如何获取文件路径 尝试这个 gets file path of selected song tell appli
  • Applescript 退出终端

    背景 我是一名 Mac 用户 用 PostScript 维护一个程序 Postscript 由 Adob e Distiller 解释 蒸馏 因此有时我想要第二次或第三次 Adob e Distiller 会话 要打开这样的实例 我有一个名
  • JXA:写入文件时设置UTF-8编码

    如果我使用标准添加编写文本文件 显然我可以在参数包中配置编码 在AppleScript中我会写 class utf8 但是在JXA中使用哪个值 我尝试了字符串 UTF8 utf8 class utf8 但没有成功 错误始终是 错误 无法转换

随机推荐

  • VS Code 忽略 pylint 的设置

    我正在尝试禁用 VS Code 中的某些 pylint 警告 但我所做的一切似乎都不起作用 我已在所有 3 个可能的位置 用户 远程 工作空间 中放置了相同的设置 但 pylint 输出窗口中显示的命令行并未反映它 我尝试过重新启动 禁用
  • 无法启动 Angular-phonecat,安装后脚本失败[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我目前正在设置一个 vagrant box 来开始开发实验性的 node js angularjs 应用程序 由于我刚刚开始使用
  • 在移动网站中处理 iPhone 事件(如向左滑动)

    iPhone 浏览器是否有可以使用 Javascript 挂钩的特殊事件 例如 如果用户向左滑动 我想执行某个操作 如果有类似的活动 很高兴看到所有这些活动的参考 理想情况下 有一天所有触摸屏移动浏览器都会有一个标准 您可以访问多点触控事件
  • RestSharp RestClient的默认超时值是多少?

    任何人都知道默认超时值休息锐利 https github com restsharp 休息客户端 RestSharp 在底层使用 HttpWebRequest 它有一个默认超时 https msdn microsoft com en us
  • 在停止调试时终止 VS Code 中的 ng 服务任务

    我有一个 Angular 项目 目前正在通过 chrome 调试器在 vs code 内进行调试 我的launch json uses preLaunchTask serve 其中服务定义于tasks json as ng serve 这样
  • 配置:错误:找不到 CGAL 库

    我的最终目标就是获取python包graph tool在我的系统上工作 如果可能的话 也在 ipynb 上工作 我已经brew install graph tool 如此处所示 https git skewed de count0 grap
  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to
  • Expresso 的 Android 测试首选项片段

    我在通过 Expresso 测试我的代码时遇到问题 我写了这段代码 public class SettingsActivity extends Activity Override protected void onCreate Bundle
  • Spring Boot 中的 JSTL 支持

    虽然我知道有JSP 支持中的一些限制 http docs spring io spring boot docs current reference html boot features developing web applications
  • 如何生成 appsettings..json 文件?

    我有一个 ASP NET Core 2 WebAPI 它将部署在以下环境中 INT QA STAGE 生产环境 基于上述 我需要有appsettings
  • 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

    我正在使用外部库 pcl 因此我需要一个不会更改现有函数原型的解决方案 我正在使用的一个函数生成一个std vector
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • 有什么方法可以设置每个解决方案的颜色选项(VS2010)?

    有没有办法配置VS2010为不同的解决方案使用不同的配色方案 在 20 世纪 90 年代的 Macintosh 上 我可以将 wctb 资源添加到文档中 以便它们可以使用不同的配色方案打开 这样可以更轻松地找到要单击的正确窗口 并且还有助于
  • lessc:未找到命令

    我使用的是 OS X 8 并且是 Node LESS 的新手 我以为我之前安装了 lessc 当我转到 usr local bin 时 我看到了 lessc 但对于我的生活来说 我无法运行它 每当我运行它时 我都会看到 bash lessc
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 在 Chrome 中加载analytics.js时出现307重定向

    我正在构建一个网络应用程序并使用 Google Analytics analytics js 进行分析 我最近注意到 Chrome 中的分析功能无法正常工作 我使用单独模块中的标准代码片段加载分析并通过 requirejs 包含 我已验证该
  • 对 boost 库的依赖项没有完整路径

    我已经成功构建了动态库 依赖于使用自定义前缀构建和安装的 boost 库 b2 install prefix PREFIX 然而 当我跑步时otool L在我的库中 我得到如下输出 libboost regex dylib compatib
  • 如何使用CSS将文本放在“框”的右上角或右下角

    我怎样才能得到here and and here位于右侧 与 lorem ipsums 位于同一行 请参阅以下内容 Lorem Ipsum etc here blah blah blah blah lorem ipsums and here
  • 对于多项式,获取其所有极值并通过突出显示所有单调部分来绘制它

    有人问我这个有趣的问题 我认为值得将其发布在这里 因为 Stack Overflow 上还没有任何相关线程 假设我有长度为的多项式系数n vector pc 其中次数多项式n 1对于变量x可以以其原始形式表示 pc 1 pc 2 x pc
  • 从 osascript/Applescript 打印到标准输出

    我有一些正在执行的 AppleScript 代码osascript 这是一个更大的 Perl 程序的一部分 我希望能够从 AppleScript 打印到标准输出 然后让 Perl 脚本处理输出 但我无法从 AppleScript 中进行打印