Applescript将每个文件移动到其新文件夹

时间:2013-05-12 18:50:08

标签: automation applescript osx-mountain-lion

我有超过200张照片。我想要Applecript:

  1. 根据文件名
  2. 为这200张图片中的每张图片创建新文件夹
  3. 将文件移入其中
  4. 所以即。 XXX.jpg进入XXX文件夹。

    任务或多或少简单但我在mac论坛上发现的所有aplescript代码都已过时。 我是最新版的山狮

1 个答案:

答案 0 :(得分:0)

尝试:

set myFolder to (choose folder)
tell application "Finder" to set myFiles to files of myFolder as alias list

repeat with aFile in myFiles
    set bName to my baseName(aFile)
    tell application "Finder"
        set folderExists to exists folder bName of myFolder
        if not folderExists then make new folder at myFolder with properties {name:bName}
        move aFile to folder bName of myFolder
    end tell
end repeat

on baseName(myFile)
    tell application "System Events" to set {fileName, fileExt} to {name, name extension} of myFile
    return text 1 thru ((get offset of "." & fileExt in fileName) - 1) of fileName
end baseName

修改

set myFolder to findFolder()

tell application "Finder" to set myFiles to files of myFolder as alias list

repeat with aFile in myFiles
    set bName to my baseName(aFile)
    tell application "Finder"
        set folderExists to exists folder bName of myFolder
        if not folderExists then make new folder at myFolder with properties {name:bName}
        move aFile to folder bName of myFolder
    end tell
end repeat

---------------- HANDLERS ----------------
on baseName(myFile)
    tell application "System Events" to set {fileName, fileExt} to {name, name extension} of myFile
    return text 1 thru ((get offset of "." & fileExt in fileName) - 1) of fileName
end baseName


on findFolder()
    activate application "SystemUIServer"
    -- Bug pointed out by Lauri Ranta http://www.openradar.me/9406282
    tell application "Finder"
        activate
        set mySelection to (get selection)
        if mySelection ≠ {} then
            set mySelection to first item of (get selection)
            if mySelection's class = folder then
                set currentFolder to mySelection
            else if mySelection's class = document file then
                set currentFolder to parent of mySelection
            else if mySelection's class = alias file then
                set currentFolder to original item of mySelection
            end if
        else
            set currentFolder to target of front Finder window
        end if
    end tell
    return (currentFolder as alias)
end findFolder
相关问题