2017-02-02 1 views
0

공간을 절약하기 위해 JPEG로 변환하는 수천 개의 사진이 라이트 룸에 있습니다. 이 RAW 파일은 이미 다른 파인더 레이블 태그로 분류되어 있으므로 JPEG로 내보낼 때 이러한 레이블이 제거됩니다. 이 태그를 유지하거나 .CR2/.NEF 확장자로 정확한 파일 이름으로 JPEG를 찾고 새 JPEG 파일에 태그를 적용하는 자동화 워크 플로를 만드는 방법이 있습니까?Automator 워크 플로우 파인더 태그

맥 OS 시에라

맥 프로 (2013 년 말)

3.7 GHz의 쿼드 코어 인텔 제온 E5

버전 10.12.3 (16D32)

답변

0

스택 오버플로가있는 곳 어디 아니다 당신은 누군가에게 당신을 위해 무언가를 개발하도록 요청합니다. 프로그램을 시작해야하며 여기에서 도움을 얻을 수 있습니다. 그래서 여기에 약간의 도움이 있습니다 :

1) 레이블을 얻거나 설정하기위한 표준 Automator 조치가 없습니다. 그러나 Applescript에는 레이블에 대한 기능이 있습니다.

2) 그러나 AppleScript 기능은 현재 Finder에서 복수를 설정할 수 있다고하더라도 파일 당 하나의 색상 레이블로 제한됩니다. 따라서 CR2 또는 NEF 파일마다 여러 색상 레이블을 설정 한 경우 AppleScript로는 아직 도움이되지 않습니다.

3) JPEG 파일을 통해 "반복"루프를 작성하고 각 반복마다 이름을 추출해야합니다. 당신은이 개 가능한 확장 (CR2, NEF)를 추가하고 파일을 원시 폴더에 존재하는 경우 검색이 이름을 사용해야합니다

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)를 통해이 수행 할 수 있습니다. 당신은 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 
+0

감사합니다! 나 한테 다 모아 줄 수 있니? 나는 코드의 두 부분이 –

+0

스크립트가 첫 번째 대답에 합쳐진 곳을 잘 모르겠습니다. – pbell

+0

좋아요! 완벽하게 작동합니다. 이제 모든 하위 폴더도 포함시켜야합니다. 가능한? –