我面临的问题是:
我想在上下文菜单中(当我右键单击文件夹时)要执行的操作并将输出显示给用户,在内部,比如说,带有垂直滚动条的文本区域窗口.假设该动作只是一个shell脚本,它在给定目录中执行"find"命令,搜索指定的模式.
到目前为止,我已经设法使用Automator实现了它.我不能做的是以同步方式管道输出("同步"的意思是当"find"命令产生输出打印到用户时,而不是在命令完成后输出) GUI.
我花了一些时间在这上面搜索,我得出的结论是XCode和Interface Builder必须加入到游戏中?我是在正确的轨道上吗?在没有深入研究这个框架的情况下,是否有一种直接而简单的方法可以成功实现这一目标?
非常感谢,
巴比斯
我正在尝试使用Automator创建一个只调用textutil convert的服务.最终,我希望能够右键单击docx文件并转换为文本,rtf,html等.在我右键单击后,我想要一个非常简单的弹出窗口,询问所需的格式.
我看到从列表中选择操作.它没有选择.在某个地方,我想到了从列表中选择的输入是获取指定文本.然后我尝试将我的值列表放在Get Specified Text中.但是,当我运行它时,我只得到一行.我已经尝试了每行一个项目,逗号分隔,空格分隔,甚至用花括号括起来,用逗号分隔.什么都行不通.
如何让选择器对话框显示我的所有选项?此外,有没有办法将选择限制为一个项目?
谢谢!

所以我正在尝试创建一个服务,它将位于Finder的上下文菜单中,并允许在当前目录中创建一个新文档.
我一直在使用Automator:
对不起,一切都在法语^^
无论如何这里是我用来检索当前工作目录的AppleScript:
on run {input, parameters}
tell application "Finder"
set pwdAlias to insertion location as alias
if not (exists folder pwdAlias) then
set pwdAlias to (container of pwdAlias) as alias
end if
end tell
set pwd to POSIX path of pwdAlias
return pwd
end run
Run Code Online (Sandbox Code Playgroud)
然后我将此值设置为变量,然后使用变量作为文档的路径创建新的文本文档,最后我使用Finder中的Reveal命令来显示创建的文档.
一切都运行正常,但脚本似乎总是迟到!我的意思是当我打开一个新的Finder窗口并选择我的服务时,它会在前一个窗口上系统地创建文档,如下所示:

但是,如果我再次尝试,则会在预期位置正确创建文档:

这是非常系统的,每次都会发生!
对不起,如果我不是很清楚,解释起来就不那么容易了!
好吧,否则,我正在运行Mountain Lion,这是附加的Automator项目:create_new_document
要添加服务只需解压缩并将文件放在〜/ Library/Services /下
希望得到一些答案,但我担心这只是一个Automator错误!
是否有可能从命令行(即终端)播放Quicktime电影(.mov)文件?
我还没有找到实现这个目标的方法.我可以使用Automator脚本来完成它,但如果我可以直接从终端运行它会更好.
在OS X 10.9.5中
我写了一个Shell脚本(通过vim).保存并导航到此脚本和
sh code.sh它运行完美(在iTerm和Total Terminal中).
同一目录中的相同命令通过Mac Automator始终产生ERROR.为什么?
在Automator和终端.echo $SHELL
/bin/bash
为什么不能通过Automator运行一个shellcript. 
我正在尝试使用 Mac Automator 创建快速操作来捕获选定的文本。当文本来自 PDF 而不是其他类型的文档(例如网页)时,它会失败。
错误消息没有帮助。还有其他人遇到过这个问题吗?怎么解决的?
我使用的是 Mac OS X 11.0.1 Big Sur
\n我使用 Automator 创建了一个“Watch me do”QuickAction。我已经保存了它(默认情况下似乎保存在〜/ Library / Services中),并将其导出到iCloudDrive / Automator。我可以在 Automator 中成功运行此脚本以完成操作,而不会出现任何提示、警告或错误。
\n在导出过程中,系统提示我将其添加到触摸栏,我照做了。我可以在 TouchBar 上看到它。但是,当我从 TouchBar 运行 QuickAction 时,我收到一条弹出消息,指示需要将其添加到“隐私”选项卡中:
\n\n\n操作 \xe2\x80\x9cWatch Me Do\xe2\x80\x9d 遇到错误:\xe2\x80\x9c 必须允许此应用程序使用辅助功能来控制此计算机,使用系统偏好设置中的安全和隐私偏好设置,然后使用“看我做”\xe2\x80\x9d
\n
弹出窗口有两个按钮:显示工作流程和确定
\n我可以看到 Automator 已添加到安全和隐私 > 辅助功能并已检查。\n我可以看到 Automator 已添加到安全和隐私 > 完整磁盘访问并已检查。\n我在安全和隐私 > 自动化窗格中看不到任何内容.\n我在任何地方都看不到我的 QuickAction,也无法将其添加到任何地方。
\n我需要将我的 QuickAction 添加到相应部分以满足安全要求的过程。
\n我正在使用 Apple 的自动程序来创建 Shell 脚本。如果我将目录专门更改为 jar 文件所在的位置,我可以让它运行。但是如果我想切换到 Shell 脚本运行所在的目录怎么办?
现在我有以下工作:
cd desktop/CommonDenom/
java -XstartOnFirstThread -jar CommonDenom.jar
Run Code Online (Sandbox Code Playgroud)
我知道有一种方法可以定位启动 Shell 脚本的任何目录,但我似乎无法进行任何操作。请具体说明,因为我很久没有使用 Automator。除非有人可以指定如何在没有 Automator 的情况下编写脚本。提前致谢。
我正在使用macOS 10.13中的Automator应用程序创建NSUserAutomatorTask一个.workflow文件.
我通过variables属性将变量传递给工作流:
https://developer.apple.com/documentation/foundation/nsuserautomatortask/1418099-variables
父应用程序是沙盒..applicationScriptsDirectory当未设置变量时,或者在应用程序中设置相同的变量并在工作流中声明时,脚本位于并成功运行.
if let workflow = try? NSUserAutomatorTask(url: url) {
workflow.variables = ["randomVariable": "value"] // NOTE
workflow.execute(withInput: nil) { (value, error) in
if let error = error {
print(error) // No variable named "randomVariable"
}
}
}
Run Code Online (Sandbox Code Playgroud)
工作流无法运行并显示错误:
没有名为"randomVariable"的变量
但是,如果我编辑工作流并添加一个变量以匹配代码中的一个,那么一切都很好.
我不再收到错误,工作流程正确执行:
这是一个问题,因为我想将多条信息作为变量传递给任何潜在的工作流程,并且每个工作流程单独决定处理每个所需的参数.
我不想要求每个工作流声明我的应用程序可选择提供的变量.
请注意,在我的示例工作流程中,从不使用变量.我不希望声明它的额外要求.
有没有办法避免每个工作流声明我的应用程序在执行工作流时传递的变量?
或者,有没有办法检查工作流声明了哪些变量?然后我只能传递工作流实际使用的那些.
我正在寻找 Apple 存储我创建的快速操作的位置,以便我可以共享它们。