问题标签 [osascript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 从 python 和 launchd 启动 osascript
这是我的小程序的要点
一个python脚本,它检查某个目录中是否有新文件(电影文件)并相应地更新sqlite3数据库,从而将要处理的文件排队。使用 launchctl 每分钟运行一次。
另一个使用 HandBrake 命令行界面执行转换文件的实际处理的 python 脚本。还使用 launchctl 每分钟运行一次。
在第二个脚本中,一旦转换完成,我想启动一个applescript,它将文件导入iTunes,并带有某些元数据。
因此,目录中的新电影文件 -> 文件被排队 -> 文件被转换 -> 文件被导入 iTunes。
我遇到的问题是applescript部分。如果我通过终端运行我的第二个 python 脚本(转换然后导入的那个),一切都会顺利运行。该文件被转换,然后 applescript 将其导入 iTunes。但如果是启动脚本的launchctl,它似乎正在跳过applescript部分。
这是python中的applescript
还有applescript(为简单起见,我删除了一些部分)
我尝试过使用 subprocess.call(cmd)、os.system(cmd) 和 subprocess.Popen(cmd)。
问题似乎是当使用launchctl 启动那个非常python 脚本时,您无法从python 启动osascript。
有人有解释或解决方法吗?
谢谢
macos - 如何使用 AppleScript 将 Caps Lock 键切换为 Ctrl 键
macos - 在 OS X 10.9.2 中,命令: osascript -e 'tell application "System Events" to keystroke "Honk" 将 'a' 添加到所有键入字符串的末尾
好吧,我的意思是,标题几乎说明了一切。我正在使用Python通过
到 10.9 终端。使用 osascript 将击键传递给应用程序,在 10.8 及更低版本中,此命令运行良好。但是现在我在 10.9 中使用它来输入应用程序,并且我在每种类型中都添加了一个“a”。
例如,我的程序以插入模式启动 crontab:
但是,使用上面的 osascript 命令后,会产生
这也发生在类似的命令中
(键码 52 是回车键,但奇怪的是,键码 53(Escape 键)似乎不会出现这种情况)
虽然我可以通过 osascript 传递退格键,但额外的“a”会导致启动命令等问题,不能简单地退格。如何避免、解决或以其他方式解决此问题?我已经广泛搜索,找不到适用于 10.9 的替代命令。
applescript - Applescript:所有脚本都可以访问的系统范围的全局变量
我们有一个 PDF 文档处理系统,在 AppleScript 中实现(我们使用 osascript 从 shell 调用脚本)。在某些脚本中,我们从 Applescript 调用 Acrobat Preflight Droplets。
这通常可以毫无问题地工作。但是,在某些情况下,处理的文档很大或/和复杂。在编写报告并将文档移动到“成功”或“失败”文件夹之前,液滴将控制权返回给脚本。结果是该过程继续进行,但如果没有移动的文件,它最终会失败。
到目前为止,解决方法是在这些 droplet 调用之后添加延迟。这确实有帮助,但对于小型文档来说这是浪费时间,而且总会有一个足够大和复杂的文档来花费比延迟更长的时间。
我们还发现,完成编写报告和移动文档所需的时间取决于系统的速度(必须预料到......)。
解决方法是根据文档大小、其页数和与机器相关的参数来计算延迟。文档大小和页数没什么大不了的;它们可以在 Applescript 中检索。
问题是机器相关参数,可以通过实验确定。但是如何使该参数对所有需要它的脚本可用?
将它合并到脚本中不是一种选择,因为我们安装了许多系统,如果我们这样做,我们最终会陷入维护的噩梦。在初始系统调用中将它作为参数传递也是不可能的,因为调用很多,并且会再次导致维护噩梦。
那么,有没有办法建立一个可以存储机器参数的地方,并且可以从任何 Applescript 轻松调用,无论它本身是如何调用的。
非常感谢您的建议。
python - Python使用osascript将文件路径变量传递到Applescript
我正在尝试将文件路径从 Python 传递到 n Applescript,不知道如何实现它。下面的代码显示了工作 Applescript 代码,它提示打开一个或多个文件,然后重新分配音频通道,保存并关闭。我不想提示输入一个或多个文件,而是想将文件路径传递到 osascript Applescript,我已经设置了参数,但不知道如何让它工作。
c++ - 如何使用可以作为 NSAppleScript 运行的 if else 条件生成 osascript
我正在尝试启动一个应用程序并通过 applescript 在其中打开一个文件。我可以通过 Apple Script Editor 做到这一点。这是我写的脚本:
如果应用程序在后台运行,单独启动无法将其带到前台(在脚本编辑器上方)。如果应用程序未运行,则激活无法显示启动画面。这就是为什么,我使用机器人启动和激活。
该脚本工作正常。但我需要我的 c++ 程序中的脚本。应用程序路径和文件路径将在运行时决定。所以我将脚本生成为 NSAppleScript 并执行脚本。生成的 NSApplescript 如下所示:
以上所有代码都在一行中,为了便于阅读,我将其打破。我收到一条错误消息variable e is not defined
。这没有被执行。
我用来生成这个脚本的代码是:
我按照 user309603 的建议在 -e 之前添加了空格。现在我收到一个新错误:
错误“266:266:语法错误:预期行尾等,但发现脚本结尾。(-2741)”编号 1
terminal - 终端 Applescript 无法逃脱报价
' '
尝试在我的 osascript 命令中包含引号时遇到了一个奇怪的问题。
如果我尝试转义一个正常的可转义字符,它可以正常工作。示例:osascript -e 'tell app "Finder" to display dialog "Te\\st"'
从 Finder 中弹出一个对话框,其中包含文本Test
。
但是,当我在写出完整的句子时尝试使用撇号时,就会出现问题。示例:osascript -e 'tell app "Finder" to display dialog "Te\'st"'
当我运行它时,我只剩下没有对话框,终端中的文本输入如下所示:
>
据我所知,这无论如何都应该有效,但是,它没有。
bash - osascript 使用带有空格的 bash 变量
我osascript
在 Bash 中使用通过 Apple Script 在通知中心 (Mac OS X) 中显示消息。我正在尝试将文本变量从 Bash 传递给脚本。对于没有空格的变量,这很好用,但不适用于带有空格的变量:
定义
并使用
有效,但使用
产量
我需要改变什么(我是新手)?谢谢!
macos - 等到某个应用程序退出,然后启动另一个应用程序
在 OS XI 上,想要执行一个 osascript 命令,该命令等待直到由其完整 .app 路径指定的某个应用程序退出,然后启动另一个应用程序,例如使用/usr/bin/open -n /Applications/MyApp.app
.
如何实现等待应用退出?
python - 使用 bash -c 运行 osascript
我正在开发一个 Sublime Text 插件(Python),我有一些 shell 脚本是它的一部分。由于 Package Control 为您提供压缩包,因此这些脚本不能作为 zip 文件中的文件运行,因此我将它们存储为字符串并使用 subprocess.Popen 和 bash -c 运行它们。该脚本的 Mac 版本需要 osascript,我无法从字符串运行它。脚本的 osascript 部分如下(一切正常之前):
到目前为止,我已经成功地实现了第一个activate
语句,osascript -e 'tell application "Terminal" to tell window 1 to activate';
但是第二个语句给我带来了很多麻烦,主要是由于所有的引号。我一直在"""triple quote"""
为我的字符串使用 Python 格式。我得到的最远是这样的
但我得到类似“83:87:语法错误:标识符不能在这个“”之后。(-2740)" 和其他同样非特定的错误。有谁知道格式化第二条语句以与 bash -c 一起使用的正确方法(或者更好的是,一种更简单的运行方法)?