Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos AppleScript/OSX-排序问题_Macos_Sorting_Applescript_Finder - Fatal编程技术网

Macos AppleScript/OSX-排序问题

Macos AppleScript/OSX-排序问题,macos,sorting,applescript,finder,Macos,Sorting,Applescript,Finder,好的,我有一个脚本,可以将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

好的,我有一个脚本,可以将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”按名称对我的列表进行排序就会(很少)把事情弄乱。有没有办法解决这个问题,或者我最好在排序之前添加一些代码,从文件名中去掉“U掩码”部分,然后再重新添加回来?

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

这个列表在排序不正确时是什么样子,答案可能包括将applescripts文本项分隔符设置为“.CR2”,然后创建CR2列表中每个项的文本项1的主列表,然后手动将“\u 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.

当然,只有当您的命名约定与此处显示的命名约定没有偏差时,这才有效。

对此的答案可能包括将applescripts文本项分隔符设置为“.CR2”,然后创建CR2列表中每个项的文本项1的主列表,然后手动添加“\u 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.

当然,只有当您的命名约定与此处显示的命名约定没有偏差时,这才有效。

上面的示例是不正确的排序顺序。但对于99%的内容,它们是按1:1的名称顺序排序的。我认为应该修改您的命名约定,使没有名称的文件不仅仅被称为“124.CR2”。它应该在名称后面添加一个类似“main”的部分,以便称为“124_main.CR2”这将自动解决您的问题。不幸的是,名称由客户提供,无法更改,否则将影响其InDesign价差。=/这是一个很好的个人用途。上面的例子是不正确的排序顺序。但对于99%的内容,它们是按1:1的名称顺序排序的。我认为应该修改您的命名约定,使没有名称的文件不仅仅被称为“124.CR2”。它应该在名称后面添加一个类似“main”的部分,以便称为“124_main.CR2”这将自动解决您的问题。不幸的是,名称由客户提供,无法更改,否则将影响其InDesign价差。=/这是一个很好的了解,但个人使用。是排序的重点,以便您可以匹配文件,以获取正确的图像正确的掩码?是的。我觉得这比“找到”名字要容易。如果是这样,我会按照@PHennessey的答案来做。使用图像,循环浏览它们,并从名称中去掉.CR2。使用新名称获取您的“\u mask”文件。使用这种方法,您不必玩排序游戏。排序的目的是为了匹配文件以获取正确图像的正确掩码吗?是的。我觉得这比“找到”名字要容易。如果是这样,我会按照@PHennessey的答案来做。使用图像,循环浏览它们,并从名称中去掉.CR2。使用新名称获取您的“\u mask”文件。使用这种方法,您不必玩排序游戏。