Skip to main content
Inspiring
January 9, 2025
Answered

An old script for copying labels not working

  • January 9, 2025
  • 2 replies
  • 542 views

On a previous PC i made a script to copy labels and ratings from jpg to raw. I made it because I save both raw and jpg when photographing and when I look through Bridge load the jpg faster. So my workflow:

  1. Rate, label, delete jpg
  2. Copy rating etc to raw
  3. Edit the raw-files with high rating

 

But nothing happens when I run this script (except the deselect all, that works). May you tell me why?

 

#target bridge   

   if( BridgeTalk.appName == "bridge" ) {  

labelRate = MenuElement.create("command", "Label Rate from JPGs", "at the end of Tools","labelRate");

}

labelRate.onSelect = function () { 

	app.document.deselectAll();
	
	var sels =app.document.getSelection("jpg");

	for(var a in sels){

		var sourceFile = File(sels.spec);

		var destFile = File(sourceFile.toString().replace(/jpg$/i,"arw"));

		if(!destFile.exists) continue;

		var thumb = new Thumbnail(destFile);

		thumb.rating = sels.rating;

		thumb.label = sels.label;

    }

};

 

Correct answer IngyNorw

Thank you for taking your time. I didn't get this to work either, but I found the script that does:

 

#target bridge   
if( BridgeTalk.appName == "bridge" ) {  
    labelRate = MenuElement.create("command", "Copy label & rate from JPGs to NEF", "at the end of Tools", "labelRate");
    alert("Menypunkt lagt til, starter programmet");
}


labelRate.onSelect = function () { 
    alert("Starter med å gå gjennom bildene");
    app.document.selectAll();
    var thumbs = app.document.selections;
    for(var a in thumbs) { //look thru all files
        var selectedFile = thumbs[a].spec;
        var FileName = decodeURI(selectedFile.name); // get file name 
        //if(FileName=="DanceMOves_1202_0433.JPG");{
            //alert(FileName);        
            var etternavn = FileName.slice((FileName.lastIndexOf(".") - 1 >>> 0) + 2); //get file extension
            var gradering = thumbs[a].rating;
            if(etternavn=="JPG" && gradering>0){ //remember to rate those that has a lavel
                var etikettJPG = thumbs[a].label;
                var graderingJPG = thumbs[a].rating;
                //alert(graderingJPG);   
                var RawNavnet = FileName.replace("JPG","NEF");
                }
            //Assuming all images are sortet by name and the jpg is before the nef, the next thumb will be the raw-version of the jpg we just treated
            if(etternavn=="NEF" && FileName==RawNavnet){
                thumbs[a].rating=graderingJPG;  
                thumbs[a].label=etikettJPG;  
            }
        //}
    }
alert("Ferdig nå");
}

2 replies

Stephen Marsh
Community Expert
Community Expert
January 10, 2025

There were some minor errors in the code, this corrected version should now work:

/*
https://community.adobe.com/t5/bridge-discussions/an-old-script-for-copying-labels-not-working/td-p/15079694
*/

#target bridge

if (BridgeTalk.appName == "bridge") {

    var labelRate = MenuElement.create("command", "Label Rate from JPGs", "at the end of Tools", "labelRate");

}

labelRate.onSelect = function () {

    app.document.deselectAll();

    var sels = app.document.getSelection("jpg");

    for (var a in sels) {

        var sourceFile = File(sels[a].spec);

        var destFile = File(sourceFile.toString().replace(/jpg$/i, "arw"));

        if (!destFile.exists) continue;

        var thumb = new Thumbnail(destFile);

        thumb.rating = sels[a].rating;

        thumb.label = sels[a].label;

    }

};
IngyNorwAuthorCorrect answer
Inspiring
January 16, 2025

Thank you for taking your time. I didn't get this to work either, but I found the script that does:

 

#target bridge   
if( BridgeTalk.appName == "bridge" ) {  
    labelRate = MenuElement.create("command", "Copy label & rate from JPGs to NEF", "at the end of Tools", "labelRate");
    alert("Menypunkt lagt til, starter programmet");
}


labelRate.onSelect = function () { 
    alert("Starter med å gå gjennom bildene");
    app.document.selectAll();
    var thumbs = app.document.selections;
    for(var a in thumbs) { //look thru all files
        var selectedFile = thumbs[a].spec;
        var FileName = decodeURI(selectedFile.name); // get file name 
        //if(FileName=="DanceMOves_1202_0433.JPG");{
            //alert(FileName);        
            var etternavn = FileName.slice((FileName.lastIndexOf(".") - 1 >>> 0) + 2); //get file extension
            var gradering = thumbs[a].rating;
            if(etternavn=="JPG" && gradering>0){ //remember to rate those that has a lavel
                var etikettJPG = thumbs[a].label;
                var graderingJPG = thumbs[a].rating;
                //alert(graderingJPG);   
                var RawNavnet = FileName.replace("JPG","NEF");
                }
            //Assuming all images are sortet by name and the jpg is before the nef, the next thumb will be the raw-version of the jpg we just treated
            if(etternavn=="NEF" && FileName==RawNavnet){
                thumbs[a].rating=graderingJPG;  
                thumbs[a].label=etikettJPG;  
            }
        //}
    }
alert("Ferdig nå");
}
Stephen Marsh
Community Expert
Community Expert
January 16, 2025

The updated code that I posted worked for me in Bridge 2024.

Stephen Marsh
Community Expert
Community Expert
January 10, 2025

@IngyNorw – Forgive the “obvious" question, however, are you still using .arw files?

IngyNorwAuthor
Inspiring
January 16, 2025

Thank you! I forgot to tell that I had tried switching arw to nef and png without any luck. But your question made me think and do a search in another old computer, and there I found an updated version. And this works! 😄