Applescript Apple脚本运行,但未显示保存的docx(未显示错误)

Applescript Apple脚本运行,但未显示保存的docx(未显示错误),applescript,Applescript,此代码会运行,但由于某些原因,运行后不会保存任何文件,也不会出现任何错误。想法 苹果书 解决方案 将路径设置为(POSIX文件“/Users/abc/folder2/”作为文本)&文件名 这是一条完全不同的路线。此解决方案完全不必使用Microsoft Word。我已将此脚本配置为循环遍历指定文件夹中的每个文件(假设此文件夹中的所有文件都是Microsoft word文档、纯文本文件或富文本文件)…获取每个文件的内容,并在新文件夹中创建一个新的.docx文件,其中包含该内容 如果此代码另存为应用

此代码会运行,但由于某些原因,运行后不会保存任何文件,也不会出现任何错误。想法

苹果书 解决方案 将路径设置为(POSIX文件“/Users/abc/folder2/”作为文本)&文件名


这是一条完全不同的路线。此解决方案完全不必使用Microsoft Word。我已将此脚本配置为循环遍历指定文件夹中的每个文件(假设此文件夹中的所有文件都是Microsoft word文档、纯文本文件或富文本文件)…获取每个文件的内容,并在新文件夹中创建一个新的.docx文件,其中包含该内容

如果此代码另存为应用程序,则可以将文件和/或文件夹直接拖动到此应用程序的图标上进行处理。如果直接启动此应用程序,它将询问您是要处理一个或多个文件,还是要处理包含其所有内容的文件夹

on open theFiles2
    --  Handle the case where the script is launched by dropping
    -- file or folders onto this applet's icon
    tell application "Finder"
        set theFiles to files of entire contents of folder theFiles2 as alias list
    end tell
    repeat with aFile from 1 to count of theFiles
        set thisFile to item aFile of theFiles
        set thisFile2 to thisFile
        set thisFile to POSIX path of thisFile
        tell application "Finder"
            set fileName to name of thisFile2
            set fileName to (characters -5 thru 1) of fileName as string
            set thePath to (path to desktop as text) & fileName
            try
                set newFolder to make new folder ¬
                    at (path to desktop) ¬
                    with properties {name:fileName}
            end try
        end tell
        set thePath to POSIX path of alias thePath
        set theScript to do shell script "textutil -convert docx " & quoted form of ¬
            thisFile & " -output " & quoted form of thePath & quoted form of fileName & ".docx"
    end repeat
end open

on run
    --  Handle the case where the script is launched without any dropped files
    set sourceFolder to display dialog ¬
        "Would You Like To Choose A Folder With All Of Its Contents Or Individual Files Within A Folder?" buttons {"Cancel", "Select Files", "Select Folder"} ¬
        default button 3 ¬
        cancel button ¬
        "Cancel" with title ¬
        "withTitleText" with icon 1 ¬
        giving up after 20
    if button returned of sourceFolder is "Select Folder" then
        set sourceFolder to ((choose folder) as text)
        tell application "Finder"
            set theFiles to files of entire contents of folder sourceFolder as alias list
        end tell
        repeat with aFile from 1 to count of theFiles
            set thisFile to item aFile of theFiles
            set thisFile2 to thisFile
            set thisFile to POSIX path of thisFile
            tell application "Finder"
                set fileName to name of thisFile2
                try
                    set fileName to (characters -5 thru 1) of fileName as string
                end try
                set thePath to (path to desktop as text) & fileName
                try
                    set newFolder to make new folder ¬
                        at (path to desktop) ¬
                        with properties {name:fileName}
                end try
            end tell
            set thePath to POSIX path of alias thePath
            set theScript to do shell script "textutil -convert docx " & quoted form of ¬
                thisFile & " -output " & quoted form of thePath & quoted form of fileName & ".docx"
        end repeat
    else if button returned of sourceFolder is "Select Files" then
        set theFiles to choose file with prompt ¬
            "Choose Files" invisibles false ¬
            multiple selections allowed true ¬
            as text
        repeat with aFile from 1 to count of theFiles
            set thisFile to item aFile of theFiles
            set thisFile2 to thisFile
            set thisFile to POSIX path of thisFile
            tell application "Finder"
                set fileName to name of thisFile2
                try
                    set fileName to (characters -5 thru 1) of fileName as string
                end try
                set thePath to (path to desktop as text) & fileName
                try
                    set newFolder to make new folder ¬
                        at (path to desktop) ¬
                        with properties {name:fileName}
                end try
            end tell
            set thePath to POSIX path of alias thePath
            set theScript to do shell script "textutil -convert docx " & quoted form of ¬
                thisFile & " -output " & quoted form of thePath & quoted form of fileName & ".docx"
        end repeat
    end if
end run

这段代码可能有点草率,可能有更好的解决方案,但。。。在我运行最新版本macOS High Sierra的系统上,它似乎运行得很好

你看到Word在工作吗?是的,除了保存之外,一切都正常。如果我使用“将_路径设置为(作为文本的桌面路径)&文件名”,它会保存在桌面上,但不会与POSIX文件路径一起保存
on open theFiles2
    --  Handle the case where the script is launched by dropping
    -- file or folders onto this applet's icon
    tell application "Finder"
        set theFiles to files of entire contents of folder theFiles2 as alias list
    end tell
    repeat with aFile from 1 to count of theFiles
        set thisFile to item aFile of theFiles
        set thisFile2 to thisFile
        set thisFile to POSIX path of thisFile
        tell application "Finder"
            set fileName to name of thisFile2
            set fileName to (characters -5 thru 1) of fileName as string
            set thePath to (path to desktop as text) & fileName
            try
                set newFolder to make new folder ¬
                    at (path to desktop) ¬
                    with properties {name:fileName}
            end try
        end tell
        set thePath to POSIX path of alias thePath
        set theScript to do shell script "textutil -convert docx " & quoted form of ¬
            thisFile & " -output " & quoted form of thePath & quoted form of fileName & ".docx"
    end repeat
end open

on run
    --  Handle the case where the script is launched without any dropped files
    set sourceFolder to display dialog ¬
        "Would You Like To Choose A Folder With All Of Its Contents Or Individual Files Within A Folder?" buttons {"Cancel", "Select Files", "Select Folder"} ¬
        default button 3 ¬
        cancel button ¬
        "Cancel" with title ¬
        "withTitleText" with icon 1 ¬
        giving up after 20
    if button returned of sourceFolder is "Select Folder" then
        set sourceFolder to ((choose folder) as text)
        tell application "Finder"
            set theFiles to files of entire contents of folder sourceFolder as alias list
        end tell
        repeat with aFile from 1 to count of theFiles
            set thisFile to item aFile of theFiles
            set thisFile2 to thisFile
            set thisFile to POSIX path of thisFile
            tell application "Finder"
                set fileName to name of thisFile2
                try
                    set fileName to (characters -5 thru 1) of fileName as string
                end try
                set thePath to (path to desktop as text) & fileName
                try
                    set newFolder to make new folder ¬
                        at (path to desktop) ¬
                        with properties {name:fileName}
                end try
            end tell
            set thePath to POSIX path of alias thePath
            set theScript to do shell script "textutil -convert docx " & quoted form of ¬
                thisFile & " -output " & quoted form of thePath & quoted form of fileName & ".docx"
        end repeat
    else if button returned of sourceFolder is "Select Files" then
        set theFiles to choose file with prompt ¬
            "Choose Files" invisibles false ¬
            multiple selections allowed true ¬
            as text
        repeat with aFile from 1 to count of theFiles
            set thisFile to item aFile of theFiles
            set thisFile2 to thisFile
            set thisFile to POSIX path of thisFile
            tell application "Finder"
                set fileName to name of thisFile2
                try
                    set fileName to (characters -5 thru 1) of fileName as string
                end try
                set thePath to (path to desktop as text) & fileName
                try
                    set newFolder to make new folder ¬
                        at (path to desktop) ¬
                        with properties {name:fileName}
                end try
            end tell
            set thePath to POSIX path of alias thePath
            set theScript to do shell script "textutil -convert docx " & quoted form of ¬
                thisFile & " -output " & quoted form of thePath & quoted form of fileName & ".docx"
        end repeat
    end if
end run