OS X Snow Leopard:用于创建新文本文件的 Finder 自动程序项目

OS X Snow Leopard:用于创建新文本文件的 Finder 自动程序项目

如何创建 Finder 自动程序项,使其显示在“服务”中,以便在文件夹内创建新的文本文件?我使用 TextMate,因此如果解决方案与编辑器无关(而不是使用 TextEdit),效果会更好。

答案1

我的做法是:创建一个虚拟文本文件,并将其存储在文档中的某个文件夹中(每次服务运行时都会将其用作模板)。然后,我创建一个工作流(服务),如下所示:

您现在要做的就是右键单击要放置新文件的文件夹,然后选择通过保存此工作流创建的服务。

要打开新创建的文件,您可以添加“打开 Finder 项目”操作,其中您显然会选择 TextMate 而不是 TextEdit。要使其与编辑器无关,您可以告诉它使用其默认应用程序打开,它就会这样做。

如果在运行时询问名称对您来说非常重要,您可以添加获取文本操作,并将其分配给第二个变量,然后在复制操作后添加重命名操作并说替换文本,用文本变量替换模板文件的名称。默认情况下,您不能以我描述的方式使用文本变量,但以下帖子提供了一种解决方法。我知道它在 10.6 下有效,在早期版本的 OSX 下可能有效,也可能无效。

这里获取说明

答案2

这不是一个自动化操作,但解决了我想要的新文件的问题:http://ignorethecode.net/blog/2009/05/31/creating-new-documents/。查看名为“更好的解决方案”的解决方案(页面底部)。

答案3

这应该有效:

do shell script "echo '[text for the text file]' > [path to folder & file].txt"

如果您只想要一个空的文本文件,请尝试以下操作:

do shell script " > [path to folder and file].txt"

编辑:我再次阅读了您的问题...这是一个 AppleScript。我对普通终端的了解比对 Automator 和 AppleScript 的了解多,但我认为您可以从 Automator 调用 AppleScript?

答案4

try
    tell application "Finder"
        set ans to text returned of (display dialog "" default answer "")

        set opn to 0
        set fn to "new.txt"
        if ans is "," then
            set opn to 1
        else if ans is "/" then
            set opn to 2
        else if character -1 of ans is "," then
            set fn to text 1 thru -2 of ans
            set opn to 1
        else if character -1 of ans is "/" then
            set fn to text 1 thru -2 of ans
            set opn to 2
        end if

        if character -1 of fn is "." then
            set fn to fn & "txt"
        end if

        try
            set p to target of window 1
        on error
            set p to desktop as alias
        end try
        set f to make new file at p with properties {name:fn}
        set selection to f
        if opn is 1 then
            open f
        else if opn is 2 then
            open f using (path to application "TextMate")
        end if
    end tell
end try

我正在使用这个快速脚本,但它也应该作为 Automator 服务运行。是的,即使以 AppleScript 标准来看,这个脚本也太丑陋了。

相关内容