スタックオーバーフローがどこの場所ではありませんあなたは誰かにあなたのために何かを開発するよう頼みます。あなたはあなたのプログラムを始めるべきです、そして、あなたはここから助けを得ることができます。したがって、ここにいくつかのヘルプがあります:
1)ラベルを取得または設定する標準のAutomatorアクションはありません。しかし、Applescriptにはラベルに関する機能が含まれています。
2)ただし、AppleScriptの機能は、現在、Finderで複数を設定できる場合でも、ファイルごとに1つのカラーラベルに制限されています。 CR2またはNEFファイルごとに複数のカラーラベルを設定している場合、AppleScriptはまだ手助けできません。
3)JPEGファイルから「繰り返し」ループを作成し、それぞれを拡張子なしで抽出する必要があります。これは、を介して行うことができます。
tell application "Finder"
set N to name of aFile
set Ext to name extension of aFile
set BaseName to text 1 thru ((length of N) - (length of Ext) - 1) of N
end tell
4)あなたは、2つの可能な拡張子(CR2、NEF)を追加し、ファイルが生のフォルダ内に存在するかどうか検索し、その名前を使用する必要があります。あなたCR2/NEFファイルは、ラベルを取得し、ファイル属性「ラベルインデックス」を使ってJPEGファイルに設定が存在する場合)ファインダー機能を使用することにより
5の「存在」することを行うことができます。
set myLabel to label index of file CR2 -- to read CR2 file label
set label index of aFile to myLabel -- to assign the label found to your new jpg file
6)あなたのJpgファイルは生のファイルと同じフォルダ/サブフォルダにあるので、すべてのファイルを含む単一のフォルダを選択するだけです。各jpgごとに、生のファイルが存在するかどうかを同じフォルダレベルで検索します。ファイルを含むフォルダは "コンテナ"によって呼び出されます。すべてのサブフォルダレベルからファイルを取得するには、「コンテンツ全体」を使用します。私は拡張子 "JPG"または "JPG"のファイルを取得するだけのフィルタを追加するだけです。あなたはあなたの拡張にリストを拡張する必要があるかもしれません。
はすべて一緒にそれを与える:
-- possible values label index: 0= no label, 1=orange, 2=Red, 3=yellow, 4=blue, 5=pink, 6=green, 7=grey
set myFolder to choose folder with prompt "Select folder containing JPEG and raw files"
tell application "Finder"
set JPEGFiles to every file in entire contents of folder myFolder whose name extension is in {"JPG", "jpg"}
repeat with aFile in JPEGFiles -- loop through all jpeg files
-- extract name of Jpg file without extension
set N to name of aFile
set Ext to name extension of aFile
set parentFolder to (container of aFile) as string -- get folder
set BaseName to text 1 thru ((length of N) - (length of Ext) - 1) of N
-- build possible raw file names with extension .CR2 or .NEF
set CR2 to (parentFolder & BaseName & ".CR2") as string
set NEF to (parentFolder & BaseName & ".NEF") as string
-- search existing label and assign it to jpg file
set myLabel to 0 -- default no label
if CR2 exists then set myLabel to label index of file CR2 -- get label of .CR2 if exists
if NEF exists then set myLabel to label index of file NEF -- get label of .NEF if exists
if myLabel > 0 then set label index of aFile to myLabel -- if label found, assignment to jpg file
end repeat -- loop to next file in jpg folder
end tell
ありがとうございました!あなたはそれを私のためにまとめてくれますか?私はコードの2つの部分が最初の答えで追加された –
スクリプトを結合する場所がわからない。 – pbell
素晴らしい!完璧に動作します。今私はそれもすべてのサブフォルダを含める必要があります。可能? –