用于创建子文件夹和移动文件的Applescript,包含名称的一部分

时间:2013-01-25 23:59:08

标签: applescript filenames move finder

我一直在寻找这样的剧本,但我找不到它。我怀疑它与this

类似

但不完全正确,我不确定如何修改它以适合我。

我有一组像这样的多个名字的文件......

  

档案名称Vyear#01(年).ext

     

FileName Vyear#01(年).ext

等等,惯例总是一样的。

文件名(有时是多个单词),然后是V代表版本,然后是括号中的年份,然后是数字,然后是括号中的另一年。它很复杂,但这都是有原因的。我正在寻找的是一种自动将所有这些文件移动到仅基于该名称的第一部分的子文件夹的方法。所以这样的文件......

  

The Mist V2000#01(2011).zip

会移动到名为this的文件夹。

  

Mist V2000

我经常不得不制作这样的文件,我很乐意将它们分类到子文件夹中。我的问题是,我不确定如何只选择名称的第一个(标题中有两个或三个单词的文件的帐户)和卷号仅用于创建子文件夹,然后匹配移动的文件名。

我希望我能正确解释这一点。如果有人可以提供帮助,我会很感激。

干杯。

1 个答案:

答案 0 :(得分:0)

试试这个。基本上,如果我们知道文件名中“#”字符的位置,我们就可以计算文件夹名称。然后我们可以获得所有文本 - 2个字符。然后你只需要创建该文件夹并将文件移入其中。简单。祝你好运。

set sourceFolder to choose folder

tell application "Finder"
    set theFiles to files of sourceFolder

    repeat with aFile in theFiles
        set fileName to name of aFile

        if fileName contains "#" then
            set poundOffset to offset of "#" in fileName
            set folderName to text 1 thru (poundOffset - 2) of fileName

            set newFolder to (sourceFolder as text) & folderName & ":"
            if not (exists folder newFolder) then
                make new folder at sourceFolder with properties {name:folderName}
            end if

            move aFile to folder newFolder
        end if
    end repeat
end tell