Automator / Applescript文件排序和移动

时间:2010-07-28 18:07:55

标签: applescript automator

我想知道Automator是否有办法使用Applescript代码来获取文件的扩展名,如果它等于特定的扩展名(例如.pdf.rtf),请转到特定的该扩展名的文件夹(例如if (extension == pdf) { move to folder "~/PDF Files" } else if (extension == rtf) { move to folder "~/Rich Text Files" }

2 个答案:

答案 0 :(得分:3)

这是一个苹果。由于您的要求很简单,我只是为您编写。请注意我如何使用子程序“getNameAndExtension(F)”获取文件扩展名。通常你可以从Finder获得文件扩展名(名为扩展名),但我发现Finder并不总是可靠的,所以我总是使用那个子程序。那个子程序一直很可靠。

set homeFolder to path to home folder as text
set rtfFolderName to "Rich Text Files"
set pdfFolderName to "PDF Files"

-- choose the files
set theFiles to choose file with prompt "Choose RTF or PDF files to move into your home folder" with multiple selections allowed

-- make sure the folders exist
tell application "Finder"
    if not (exists folder (homeFolder & rtfFolderName)) then
        make new folder at folder homeFolder with properties {name:rtfFolderName}
    end if
    if not (exists folder (homeFolder & pdfFolderName)) then
        make new folder at folder homeFolder with properties {name:pdfFolderName}
    end if
end tell

-- move the files
repeat with aFile in theFiles
    set fileExtension to item 2 of getNameAndExtension(aFile)
    if fileExtension is "rtf" then
        tell application "Finder"
            move aFile to folder (homeFolder & rtfFolderName)
        end tell
    else if fileExtension is "pdf" then
        tell application "Finder"
            move aFile to folder (homeFolder & pdfFolderName)
        end tell
    end if
end repeat



(*=============== SUBROUTINES ===============*)
on getNameAndExtension(F)
    set F to F as Unicode text
    set {name:Nm, name extension:Ex} to info for file F without size
    if Ex is missing value then set Ex to ""
    if Ex is not "" then
        set Nm to text 1 thru ((count Nm) - (count Ex) - 1) of Nm
    end if
    return {Nm, Ex}
end getNameAndExtension

答案 1 :(得分:0)

我现在不在我的Apple,所以我无法使用Automator并弄明白。但是,如果你可以通过将finder切换到列表视图来进行,按类型排序,然后选择相同类型的文件块并将它们拖到右侧文件夹中。