2016-06-30 12 views
0

さて、あるファイルから別のファイルにアルファチャンネルをコピーするスクリプトがあります。この問題は、名前に_maskを持つアルファチャンネルの名前が時々ソートされてしまうことがあります。AppleScript/OSX - ソートの問題

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 

ただ、順不同で名前によって場所のもの(まれ)にはmyListソートするのtellアプリケーション "ファインダー" を使用して -

例、私はいくつかのファイルを持っています。これを修正する方法はありますか、ソート前にファイル名から_mask部分を取り除いてから再度追加するコードを追加するほうがいいですか?

+0

正しいイメージの正しいマスクを取得するためにファイルを照合できるように並べ替えのポイントはありますか? – ThrowBackDewd

+0

私はそれが "Finding"という名前よりも簡単だと考えました。 – Pixel

+0

その場合、私は@Pennesseyの答えに従います。あなたのイメージで作業し、それらをループし、名前から.CR2を取り除きます。新しい名前を使用して、 "_mask"ファイルを取得します。このアプローチでは、ソートゲームをプレイする必要はありません。 – ThrowBackDewd

答えて

2

これに対する答えは、おそらく、 "CR2"のように、AppleScriptのテキスト項目区切り文字を設定し、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. 

もちろん、これはあなたの命名規則があなたがここに示したものから逸脱しない場合にのみ当てはまります。

0

このリストは不適切にソートされたときにどのように見えますか?代わりにどのように表示されますか?

+0

上記の例は不適切なソート順です。 しかし、99%の場合、1:1の名前順でソートされています。 – Pixel

+1

名前のないファイルは単に "124.CR2"と呼ばれないように、命名規則を変更する必要があります。それは "main"のような名前に追加の部分を持っているはずですので "124_main.CR2"と呼ばれます。それが自動的に問題を解決します。 – PHennessey

+0

残念ながら、この名前はクライアントによって提供され、変更することはできません。あるいは、InDesignのスプレッドを混乱させるでしょう。 = /個人的には知っておきたいことですが。 – Pixel