标签: automator

Mac-Automator,如何将shell脚本的输出传递给GUI文本框

我面临的问题是:

我想在上下文菜单中(当我右键单击文件夹时)要执行的操作并将输出显示给用户,在内部,比如说,带有垂直滚动条的文本区域窗口.假设该动作只是一个shell脚本,它在给定目录中执行"find"命令,搜索指定的模式.

到目前为止,我已经设法使用Automator实现了它.我不能做的是以同步方式管道输出("同步"的意思是当"find"命令产生输出打印到用户时,而不是在命令完成后输出) GUI.

我花了一些时间在这上面搜索,我得出的结论是XCode和Interface Builder必须加入到游戏中?我是在正确的轨道上吗?在没有深入研究这个框架的情况下,是否有一种直接而简单的方法可以成功实现这一目标?

非常感谢,
巴比斯

macos shell user-interface automator

7
推荐指数
1
解决办法
3341
查看次数

Automator:如何使用"从列表中选择"操作?

我正在尝试使用Automator创建一个只调用textutil convert的服务.最终,我希望能够右键单击docx文件并转换为文本,rtf,html等.在我右键单击后,我想要一个非常简单的弹出窗口,询问所需的格式.

我看到从列表中选择操作.它没有选择.在某个地方,我想到了从列表中选择的输入是获取指定文本.然后我尝试将我的值列表放在Get Specified Text中.但是,当我运行它时,我只得到一行.我已经尝试了每行一个项目,逗号分隔,空格分隔,甚至用花括号括起来,用逗号分隔.什么都行不通.

如何让选择器对话框显示我的所有选项?此外,有没有办法将选择限制为一个项目?

谢谢!

automator截图 结果

macos automator

7
推荐指数
2
解决办法
1万
查看次数

创建automator服务以在当前目录中创建新文档

所以我正在尝试创建一个服务,它将位于Finder的上下文菜单中,并允许在当前目录中创建一个新文档.

我一直在使用Automator: 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错误!

macos applescript finder automator

7
推荐指数
2
解决办法
8491
查看次数

从终端播放Quicktime电影

是否有可能从命令行(即终端)播放Quicktime电影(.mov)文件?

我还没有找到实现这个目标的方法.我可以使用Automator脚本来完成它,但如果我可以直接从终端运行它会更好.

macos quicktime automator

7
推荐指数
2
解决办法
2万
查看次数

从Mac Automator运行Shellscript

在OS X 10.9.5中

我写了一个Shell脚本(通过vim).保存并导航到此脚本和

sh code.sh它运行完美(在iTerm和Total Terminal中).

同一目录中的相同命令通过Mac Automator始终产生ERROR.为什么?

在Automator和终端.

echo $SHELL /bin/bash 为什么不能通过Automator运行一个shellcript. 在此输入图像描述

macos bash automator

7
推荐指数
2
解决办法
2万
查看次数

PDF 和 Mac Automator:服务输入存在问题。/ 无法使用“[快速操作名称]”服务

我正在尝试使用 Mac Automator 创建快速操作来捕获选定的文本。当文本来自 PDF 而不是其他类型的文档(例如网页)时,它会失败。

错误消息没有帮助。还有其他人遇到过这个问题吗?怎么解决的?

像这样简单的快速操作会在我的 Mac 上产生错误: 快速操作的屏幕截图

macos automator

7
推荐指数
0
解决办法
459
查看次数

如何在 Automator 中进行“Watch Me Do”QuickAction 的安全 > 隐私设置

我使用的是 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

操作 \xe2\x80\x9cWatch Me Do\xe2\x80\x9d 遇到错误:\xe2\x80\x9c 必须允许此应用程序使用辅助功能来控制此计算机,使用系统偏好设置中的安全和隐私偏好设置,然后使用“看我做”\xe2\x80\x9d

\n
\n

弹出窗口有两个按钮:显示工作流程和确定

\n
    \n
  • 单击“显示工作流程”在 Automator 中打开工作流程,并不能解决问题。
  • \n
  • 单击“确定”将关闭弹出窗口,不会打开安全设置,并且不会解决问题。
  • \n
\n

我可以看到 Automator 已添加到安全和隐私 > 辅助功能并已检查。\n我可以看到 Automator 已添加到安全和隐私 > 完整磁盘访问并已检查。\n我在安全和隐私 > 自动化窗格中看不到任何内容.\n我在任何地方都看不到我的 QuickAction,也无法将其添加到任何地方。

\n

我需要将我的 QuickAction 添加到相应部分以满足安全要求的过程。

\n

automator quickaction macbookpro-touch-bar

7
推荐指数
1
解决办法
3657
查看次数

OSX 如何将 Shell 脚本更改目录更改为脚本所在的目录?

我正在使用 Apple 的自动程序来创建 Shell 脚本。如果我将目录专门更改为 jar 文件所在的位置,我可以让它运行。但是如果我想切换到 Shell 脚本运行所在的目录怎么办?

现在我有以下工作:

cd desktop/CommonDenom/
java -XstartOnFirstThread -jar CommonDenom.jar
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以定位启动 Shell 脚本的任何目录,但我似乎无法进行任何操作。请具体说明,因为我很久没有使用 Automator。除非有人可以指定如何在没有 Automator 的情况下编写脚本。提前致谢。

java macos shell jar automator

6
推荐指数
1
解决办法
5659
查看次数

设置NSUserAutomatorTask变量,而不需要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"的变量

但是,如果我编辑工作流并添加一个变量以匹配代码中的一个,那么一切都很好.

将var添加到工作流程

我不再收到错误,工作流程正确执行:

执行工作流程

这是一个问题,因为我想将多条信息作为变量传递给任何潜在的工作流程,并且每个工作流程单独决定处理每个所需的参数.

我不想要求每个工作流声明我的应用程序可选择提供的变量.

请注意,在我的示例工作流程中,从不使用变量.我不希望声明它的额外要求.

有没有办法避免每个工作流声明我的应用程序在执行工作流时传递的变量?

或者,有没有办法检查工作流声明了哪些变量?然后我只能传递工作流实际使用的那些.

macos workflow cocoa applescript automator

6
推荐指数
1
解决办法
183
查看次数

在 macOS 中的 Automator 中创建的快速操作保存在哪里?

我正在寻找 Apple 存储我创建的快速操作的位置,以便我可以共享它们。

macos automator

6
推荐指数
1
解决办法
1852
查看次数