переполнение стека не является местом, где вы просите кого-то разработать что-то для вас. Вы должны начать свою программу, а затем получить помощь здесь. Итак, вот некоторая помощь:
1) нет стандартного действия Automator для получения или установки меток. Но Applescript содержит функцию о методах.
2) Однако имейте в виду, что возможности Applescript сегодня ограничены одним ярлыком на каждый файл, даже если вы можете установить несколько в Finder. Поэтому, если вы установили несколько ярлыков цветов в 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) и искать, если файл существует в необработанном папке. Вы можете сделать это с помощью функции Finder «существует»
5) если CR2/NEF файл существует получить метку и установить его в файл в формате JPEG с помощью атрибута «индекс метки» файла:
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
Спасибо! Не могли бы вы собрать все это для меня? Я не уверен, где два фрагмента кода объединяют сценарий –
, добавленный в первый ответ. – pbell
Отлично! Прекрасно работает. Теперь мне нужно включить все вспомогательные папки. Возможное? –