Questions tagged «applescript»

AppleScript是macOS中的专有编程语言,用于控制和与应用程序交换数据。

0
Applescript Editor的编译器不稳定的行为
我刚刚在Applescript编辑器(Snow Leopard - 10.6.8)中遇到了一些奇怪的行为,我想知道是否有人知道如何绕过它。 基本上,一秒钟语句将编译并运行正常,但是一旦我更改代码并恢复到原始文本,它就无法再次编译。 例如,以下屏幕截图显示了编译的代码并运行正常,结果显示在底部。 现在,我将该行复制到一个新窗口,代码不再编译!领先的间距不重要,我这样做是可见的。它抱怨的报价很好。重新输入它们没有任何区别。其他时候被替换测试application process用<<class pcap>>。 它变得更糟。谷歌搜索后发现了什么,我看到有人建议使用括号。我做了,它的工作!我做了一些改变再次破了! 有谁知道发生了什么? 编辑:Applescript Editor ver:2.3 Applescript ver:2.1.2 请不要建议我升级操作系统。我的旧版2008 macbook已经足够慢了。:(

1
Applescript / Javascript在Safari中单击Jupiter Notebook的子菜单项
当我a.ipynb在Safari中运行jupyter notebook文件时,它会在本地主机上打开http://localhost:8888/notebooks/a.ipynb#。 注意:脚本应该适用于任何*.ipynb文件,a.ipynb只是一个示例。此外,该网站在运行代码时位于最前面的应用程序。 如何编写Applescript(可能正在使用JavaScript),以便我可以单击Run All Belowsafari子菜单的该选项卡中的菜单按钮? 这是我的主题: tell application "Safari" activate end tell tell application "System Events" tell process "Safari" click menu item "Run All Below" of menu "Cell" of menu bar 1 end tell end tell 但是,这没有用。我对applescript很新,一般只使用Python。 如何单击所需菜单“全部运行”? 相关链接: 使用Javascript | Applescript点击Safari中的按钮 https://stackoverflow.com/questions/24917282/click-on-safari-web-page-button-using-applescript

1
Applescript使用Javascript突出显示Chrome中的文本
我无法弄清楚如何调整这个突出显示Safari文本的脚本,以使其与Google Chrome一起使用: set myList to {"AppleScript", "2018", "demo@apple.com"} tell application "Safari" 'window.find()' command change the scroll position when it select the founded string set scrollPos to do JavaScript "document.designMode = 'on'; [window.pageXOffset.toString(),window.pageYOffset.toString()]" in document 1 repeat with thisText in myList do JavaScript "var sel = window.getSelection();\n sel.collapse(document.body, 0);//------ To start …

4
Applescript将当前文件移动到文件夹
我想创建一个脚本,该脚本接受当前文件选择并将其移动到现有文件夹。然后,我将为其他9个文件夹复制此代码,并为它们分配所有键盘快捷键。 我的应用程序非常具体,不幸的是我需要使用Finder来快速监控音频样本而不是终端。(我正在通过成千上万的音频样本,将它们删除并分类到子文件夹中)。 这个想法很简单: tell application "Finder" move selection to alias "Users:Jordan:Desktop:0" end tell 这段代码有效; 但是,它会继续将目标文件的父文件夹移动到目标文件夹中。此操作会使脚本适得其反并无效。我在automator中尝试了相同的想法也无济于事。我已经制作了很长的脚本来试图阻止告诉移动文件夹,但没有任何效果。 除了我之外,为什么这么简单的功能可能如此错误和困难以及为什么无论我雇员有多少变量使选择静态,或者我添加了多少条件或延迟,脚本仍然将文件移动folder A到folder B那么folder A进入folder B。 如何移动file在folder A为folder B没有移动folder A到它呢?


2
在批处理文件夹重命名上插入字符
我有一个文件夹,其中包含成千上万个名为“ ABC 123456”的文件。我需要在两个文本块之间添加一个破折号,例如“ ABC-123456”。离开尾随空间。 Automator没有提供一种用于在其中计数4个字符并插入新的破折号和空格的方法。 我有这个终端命令,并且一直在修改它。 for file in *.txt do echo mv "$file" **"$file" count 3 "- "** done 任何人都知道Applescript,或者可以通过终端命令帮助我重命名文件?

2
保存Applescript会删除字符
我已经编写了一个Applescript来启动和定位应用程序的两个实例。使用以下代码,脚本可以在编辑器中完美运行: tell application "App" to activate tell application "System Events" to tell application process "App" set position of window 1 to {8, 22} end tell tell application "App 2" to activate tell application "System Events" to tell application process "App 2" set position of window 1 to {914, 22} end …

3
AppleScript错误:在剪贴板上放置纯文本时,该文本始终会转换为富文本
运行以下代码在剪贴板上放置一些文本: set testString to "This string should be plain text." set the clipboard to testString 如果您在TextEdit.app中打开一个新的.rtf文件,并将剪贴板粘贴到此文档中,您将发现剪贴板包含富文本格式。具体来说,剪贴板上的文本具有font Helvetica和size 12。 我也尝试指定set the clipboard to (testString as string)或set the clipboard to (testString as text)。但是,代码始终将富文本格式放置在剪贴板上。这种富文本始终具有相同的样式(如上一段所述)。 是否可以在AppleScript中以纯文本形式将文本放在剪贴板上? OS X El Capitan,版本10.11.6。


0
如何创建可用于沙箱的基于Automator的“替换文本”服务?
我想在macOS 10.12.6上使用Automator创建服务。 我选择了: 服务会在任何应用程序中接收所选的富文本格式 输入就是整个选择 ☑️输出会替换所选的文本 然后,我计划使用AppleScript转换文本。很容易,对吧?但是我已经使用这种方法创建了多个服务,当我在TextEdit中选择它们时,所有服务都会失败。我暂时看到了微调器图标,但没有显示错误对话框。 在Console.app中,我看到此错误: sandboxd Subsystem: com.apple.sandbox.reporting Category: violation SandboxViolation: TextEdit(11092) deny file-read-data /Users/somebody/Library/Services/Demo.workflow Violation: deny file-read-data /Users/somebody/Library/Services/Demo.workflow 如何使我的服务符合沙盒限制?

1
Mac版Outlook 2016不会从主窗口返回“当前邮件”
在Mac版Outlook 2011中,我能够使用AppleScript从Outlook主窗口移动当前选择的消息。脚本开始如下: tell application "/Applications/Microsoft Outlook.app" activate set myMessages to current messages ... 无论当前屏幕上是否有“提醒”弹出窗口,此方法都有效。 从Outlook for Mac Preview开始,到2016年最终版本,此脚本现在仅在未显示“提醒”弹出窗口时才起作用。如果“提醒”窗口在屏幕上,即使我首先指示Outlook激活主邮件窗口,该脚本也会将弹出窗口中当前出现的所有项目都视为当前邮件。(我怀疑这可能与“提醒”窗口始终处于“顶部”而不管您选择了什么的事实有关。)因此,当“提醒”弹出窗口打开时,脚本将失败(即,它指示当前未选择任何邮件)。 关于如何强制Outlook返回在主邮件窗口而不是“提醒”弹出窗口中选择的邮件集,有什么建议吗? 谢谢。 编辑 在以下答案的基础上,为了最大程度地减少关闭“提醒”窗口的不便之处,可以在调用“当前消息”之前添加以下代码: --Workaround to fix Outlook 2016 Reminders window bug, part 1 set windowClosed to false if "Reminder" is in (name of the front window) then set windowClosed to true …


1
Automator:“运行Shell脚本”因为缺少“on”命令而抛出错误
OSX 10.11.4在这里。 我正在尝试创建一个与热键一起使用的工作流,以运行一个简单的shell脚本。 创建者:Automator - >新服务 - >实用程序 - >运行Shell Script,然后在'Finder'中设置为'no input',shell设置为“/ bin / bash”。 对于一个简单的脚本,比如,一个只包含“ls”的脚本,它可以工作。 但到目前为止,我只是为我想要运行的脚本收到错误,其中包括“运行中”的调用,这似乎会导致问题。调试一下后,我可以把它归结为: on run {input, parameters} end run 导致错误: Run Shell script failed - 1 error -: line 2: on: command not found 可能与我想到的缺失路径有关,所以我已经尝试过这个,例如通过增加: PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH 要么: PATH=/usr/bin:/usr/local/bin export PATH 如建议 这里 。没有帮助。 另请注意:我安装了Anaconda,看起来它改变了.bash_profile中的路径。然后,我甚至不确定automator调用的bash环境是否会查看.bash_profile。 …

2
使用Applescript激活桌面
基本上,我有这个简短的脚本来“清理”桌面。这是代码: tell application "System Events" tell application "Finder" to activate desktop delay 0.1 tell process "Finder" to click menu item "Clean Up" of menu "View" of menu bar item "View" of front menu bar end tell 没有Finder窗口打开时,脚本工作正常。但是,如果至少有一个Finder窗口,那么该行 tell application "Finder" to activate desktop 运行时,它会使该窗口处于活动状态,而不是桌面。 这是什么原因?将焦点放在桌面上的正确方法是什么(与点击桌面图像相同的效果)? (在El Capitan上这样做)

1
从Apple Script获取两个具有相同名称的实例的当前应用程序
当运行同一个应用程序的两个实例时,AppleScript如何处理活动应用程序的活动窗口? 下面的脚本解决了其他应用程序。可能是因为应用程序的名称和ID是相同的,它只按名称从列表中选择第一个。 tell application (path to frontmost application as text) to tell front window... 我使用该脚本来最大化当前窗口,但它不适用于同一个应用程序的两个实例: tell application "Finder" to set {0, 0, dtw, dth} to bounds of window of desktop try tell application (path to frontmost application as text) to tell front window set bounds to {0, 0, dtw, dth} …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.