AppleScript "Save As" HTML in TextEdit



我希望AppleScript循环浏览文件夹中的一组RTF文件并将它们另存为HTML文件。

这是我到目前为止的简单代码。XXXX是我挣扎的地方:

tell application "Finder"
    set source_folder to choose folder
    set aList to every file in source_folder
    repeat with i from 1 to number of items in aList
        tell application "TextEdit"
            set aFile to (item i of aList)
            save as aFile XXXXXXXXX
        end tell
    end repeat
end tell

我真的是新手...任何帮助非常感谢。

您不需要 TextEdit 来实现此目的。有一个命令行程序textutil,它将完成这项工作,而无需打开和保存TextEdit所需的所有内容。我们可以修复您的文本编辑脚本(它有一些错误),但请先尝试此操作,并让我们知道它是否适合您。html 文件将具有相同的名称,但具有 html 扩展名,并将位于source_folder中。输出路径可以通过使用 textutil 的 "-output" 开关在代码中更改。参见"man textutil",如果你想看看它能做的一切。

还有一个普遍的问题...什么是 RTD 文件?你是说 rtf 还是 rtfd?Textutil 可以与 rtf/rtfd 一起使用,但不能使用 rtd,所以我希望这不是你的文件类型。

set source_folder to choose folder with prompt "Choose a source folder."
set output_folder to choose folder with prompt "Choose an output folder."
tell application "Finder"
    set theFiles to (files of entire contents of source_folder) as alias list
end tell
repeat with aFile in theFiles
    tell application "Finder"
        set fileName to name of aFile
        set fileExt to name extension of aFile
    end tell
    set outputPath to (output_folder as text) & text 1 thru -((count of fileExt) + 1) of fileName & "html"
    do shell script "/usr/bin/textutil -convert html -output " & quoted form of POSIX path of outputPath & space & quoted form of POSIX path of aFile
end repeat

你提到你是applescript的新手,所以我会给你一些在编写applescript代码时应该记住的一般指示。

  1. 避免将告诉代码块放在彼此内部。你有告诉应用程序文本编辑里面告诉应用程序查找器。这很糟糕。这样做是许多冲突的根源,因为您基本上是在告诉 Finder 告诉 TextEdit 做某事。这不好,因为命令可能会混淆,并且很难调试此类问题。因此,请保持您的告诉块分开。
  2. 避免告诉应用程序执行不在其 applescript 字典中的命令。您应该只告诉应用程序执行它知道的命令,并且应用程序只知道其字典中的命令。因此,例如,您告诉Finder"选择文件夹"。"访达"不知道该命令。这是一个苹果脚本命令。因此,按照您所做的操作是另一个可能的错误来源。在这种情况下,这是一个简单的命令,它将起作用,但通常避免这样做。
  3. 关于查找器,您应该避免过多使用它。Finder是您计算机上的主要程序,通常忙于与计算机相关的事情。因此,最好只在必要时使用它。例如,您可以在我的代码中看到我从 Finder 中删除了"选择文件夹"和重复循环。我特意将"作为别名列表"附加到 Finder 命令的末尾,以使在 Finder 告诉代码块之外可用的文件列表。当然,如果需要,请使用 Finder,但如果您不需要它,最好不要使用它。
  4. 使用应用程序的苹果脚本字典。如上所述,字典列出了应用程序理解的所有术语和语法(当然字典很难理解,但你使用它们越多,你就会做得更好)。在AppleScript编辑器的文件菜单下,选择"打开字典",然后显示理解Applescript的所有应用程序的列表。从中选择一个应用程序以查看其字典。例如,您正在尝试找出TextEdit的"另存为"命令。你通常可以从字典中获得很好的指导,所以你应该看看它。使用搜索字段进行搜索!

所以我希望这有帮助!祝你好运。

最新更新