AppleScript / OSX - 排序问题

时间:2016-06-30 21:29:15

标签: macos sorting applescript finder

好的,我有一个脚本可以将alpha通道从一个文件复制到另一个文件。问题来自于带有alpha通道的名称,名称中的_mask有时会抛出排序。

示例,我有几个文件 -

124_CHARCOAL.CR2
124_hangers.CR2
124_INDIGO.CR2
124_RED.CR2
124_TAUPE.CR2
124.CR2

124_CHARCOAL_mask.pdf
124_hangers_mask.pdf
124_INDIGO_mask.pdf
124_mask.pdf
124_RED_mask.pdf
124_TAUPE_mask.pdf

只需使用 告诉应用程序" Finder"按名称排序myList 将事物(很少)排除在外。有没有办法解决这个问题,或者我最好只是在排序之前添加一些代码来从文件名中去除_mask部分然后重新添加它?

2 个答案:

答案 0 :(得分:2)

答案可能涉及将applescripts文本项分隔符设置为“.CR2”,然后在CR2列表中创建每个项目的文本项目1的主列表,然后手动将“_mask.pdf”添加到这些项目的末尾。以这种方式手动生成新列表。

set myList to {"124_CHARCOAL.CR2", "124_hangers.CR2", "124_INDIGO.CR2", "124_RED.CR2", "124_TAUPE.CR2", "124.CR2"} -- this is your original sorted list of CR2 files.

set maskList to {} -- prepare an empty list to receive the correctly ordered mask list.

set AppleScript's text item delimiters to ".CR2"
repeat with thisItem in myList
    set baseName to text item 1 of thisItem
    set maskName to baseName & "_mask.pdf"
    copy maskName to end of maskList
end repeat
set AppleScript's text item delimiters to "" -- remember to reset this to nothing
get maskList -- this returns the properly-ordered mask list.

当然,只有当您的命名惯例与您在此处显示的内容不同时,这才有效。

答案 1 :(得分:0)

这个列表在排序不正确时会是什么样子,而它应该是什么样的呢?