8

所以我正在尝试创建一个服务,该服务将位于 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

然后我将此值设置为一个变量,然后使用该变量作为文档的路径创建一个新的文本文档,最后我在 Finder 中使用命令 Reveal 来显示创建的文档。

一切都很好,只是脚本似乎总是迟到!我的意思是,当我打开一个新的 Finder 窗口并选择我的服务时,它正在系统地在前一个窗口上创建文档,如下所示: 选择创建新文档 文档在错误的位置创建

但是,如果我再次尝试,文档将在预期位置正确创建: 再次尝试创建新文档 这次文档创建正确!

这是非常系统的,每次都会发生!

对不起,如果我不是很清楚,这不是那么容易解释!

否则,我正在运行 Mountain Lion,这是附加的 Automator 项目:create_new_document

要添加服务,只需解压缩并将文件放在 ~/Library/Services/ 下

希望得到一些答案,但我担心这只是一个 Automator 错误!

4

2 回答 2

7

尝试这个在此处输入图像描述

  • 取决于您要单击的内容

将选择的服务设置为:“文件夹”或文件或文件夹。在' Finder.app '

  • 获取第一个 Finder 窗口路径操作

您可以在此处从我的博客文章中下载获取第一个 Finder 窗口路径操作 。下载位于文章底部。Action 获取最前面的finder 窗口的posix 路径。由于您正在单击窗口中的文件夹。该窗口将返回。

  • 变量的设定值

  • 获取指定文本

下一个动作“新建文本文件”需要一些输入。如果它没有得到任何文件,则不会创建任何文件。您可以将文本字段留空。只需采取适当的行动即可。

  • 新文本文件

将变量“路径”或您命名它的任何内容拖到“位置:”下拉菜单中。

您可以单击 Automator 窗口底部的双蓝线来切换工作流变量列表

工作流变量列表

保存您的服务。试试看。(可能需要一段时间才能显示在上下文菜单中。)

于 2012-11-11T04:20:25.317 回答
3

这是10.7 和 10.8 中的一个开放错误

使用此解决方法

on run {input, parameters}
    activate application "System Events"
    activate application "Finder"
    tell application "Finder"
        set pwdAlias to insertion location as alias
        set pwdAlias to (container of pwdAlias) as alias
    end tell
    return POSIX path of pwdAlias
end run
于 2012-08-29T20:07:36.617 回答