2017-02-02 33 views
0

我在lightroom中有数千张照片,我将其转换为JPEG以节省空间。问题是这些RAW文件已经被分类到不同的发现者标签标签中,所以当我导出到JPEG时,这些标签将被删除。有没有办法保留这些标签或只是创建一个自动扫描工作流程来扫描目录并找到具有.CR2/.NEF扩展名的确切文件名的JPEG,并将标签应用到新的JPEG文件?Automator工作流程查找器标签

MACOS塞拉利昂

的Mac Pro(晚2013)

3.7 GHz四核Intel Xeon E5

版本10.12.3(16D32)

回答

0

堆栈溢出不是一个地方,你要求某人为你开发一些东西。你应该开始你的程序,然后你可以从这里获得帮助。所以这里有一些帮助:

1)没有标准的Automator动作来获取或设置标签。但是Applescript包含有关标签的功能。

2)但是,请注意,即使您可以在Finder中设置多个,AppleScript功能今天也仅限于每个文件的单个颜色标签。因此,如果您已经为每个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),如果该文件中的原始文件夹中存在搜索。你可以通过使用搜索功能“存在”

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 
+0

谢谢!你能把它放在一起吗?我不确定这两段代码在第一个答案中加入了 –

+0

脚本。 – pbell

+0

太棒了!完美的作品。现在我需要它也包括所有的子文件夹。可能? –