Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Script for copying keywords to description field

Guest
Aug 07, 2011 Aug 07, 2011

Does anyone have a script that can be used in cs5 to copy the keywords to the description field?

Thanks

Mark

TOPICS
Scripting
16.2K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Advocate , Dec 08, 2022 Dec 08, 2022

@Lumigraphics is correct, there is no way in Bridge (in the app or via scripting) to change file Date Created.

ExifTool is your best bet to do the batch edit you want. 

ExifTool is an amazing tool but it is command line, which can be cumbersome if you're not used to it.

For what you want to do, I think this would be the command:

 

exiftool "-filecreatedate<datetimeoriginal" "DIR"

 

...where DIR is the name of a directory/folder containing the images. 

 

I tested this and it works for me, meaning

...
Translate
replies 144 Replies 144
New Here ,
Dec 08, 2022 Dec 08, 2022

Is File Properties > Date Created read-only for Adobe Bridge?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Dec 08, 2022 Dec 08, 2022

Yes.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 08, 2022 Dec 08, 2022

@Lumigraphics is correct, there is no way in Bridge (in the app or via scripting) to change file Date Created.

ExifTool is your best bet to do the batch edit you want. 

ExifTool is an amazing tool but it is command line, which can be cumbersome if you're not used to it.

For what you want to do, I think this would be the command:

 

exiftool "-filecreatedate<datetimeoriginal" "DIR"

 

...where DIR is the name of a directory/folder containing the images. 

 

I tested this and it works for me, meaning when I read the file back through ExifTool the file date created is changed. Also, in Windows explorer the file date created is correct. Oddly, Bridge is still showing the original File Date Created value. I purged the folder cache, but that didn't help. Anyway, I think ExifTool is changing the file date, but Bridge has some issue showing it, so that's another puzzle to solve.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 09, 2022 Dec 09, 2022

I tested this command using these files:

https://drive.google.com/drive/folders/1j7Gdi7xJeRmSKWH7EEJk-46NgBugWIIb?usp=sharing

in "DIR" = "test".  No go.  Command used:

C:/exiftool.exe "-filecreatedate<datetimeoriginal" "D:\rlmcc\Pictures\McCord Images\test"

Question:  What's the real image filename to be used above (e.g., for "filecreatedate") we see in Bridge under File Properties > Date Created ?  Maybe I'm using the wrong argument???

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 09, 2022 Dec 09, 2022

Not " filename ", but fieldname in the image

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 09, 2022 Dec 09, 2022

Correct, "filecreatedate" would be displayed in Bridge under File Properties > Date Created

 

When you ran the command, what was the result message in the terminal window? Any errors?

If there were no errors, can you check the file Date Created in Finder/Explorer? I found that Bridge was stuck displaying the original Date Created until I purged the cache and reset the preferences (a hard reset). I'm not sure that's really necessary. I'm still investigating.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Dec 09, 2022 Dec 09, 2022

You can also look in File Info->Raw data to see what the tags are, but created and modified dates are system data stored outside XMP so I'm not sure how that gets synched.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 09, 2022 Dec 09, 2022

Thanks for your help!

1. Results in Terminal window:

" C:\Users\rlmcc>C:/exiftool.exe "-datecreated<datetimeoriginal" "D:\rlmcc\Pictures\McCord Images\test"
1 directories scanned
6 image files updated "  Thar's it, no errors.

2.  Output back to "test" folder, see link:

https://drive.google.com/drive/folders/1dDWrsrlz9Yzp5BNxaavmsTwfU8x42eET?usp=sharing

Note that actual value of datetimeoriginal that should be the Date Taken now is found in each image's filename YYYYMMDD-RLM-nnnn.jpg.  This value YYYYMMDD should now be filecreatedate per image.

3.  My File Explorer displays non-changed dates. 

4.  Think target filename/image that Capture ONE called "Date" (taken) some other field.  Do you see output changed correctly looking at my output?

 

Thanks, Bob

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 09, 2022 Dec 09, 2022

I did it again:  "filename/image" in item 4 above should be "fieldname/image."  Sorry!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 09, 2022 Dec 09, 2022

Google says I need permission to your drive. Check for an email.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 09, 2022 Dec 09, 2022

Sorry, I think I was not being accurate. "filecreatedate" would be displayed in Bridge under File Properties > Date File Created

 

gregreser_0-1670623176217.png

 

Here are the exiftool definitions:

FileCreateDate (the filesystem creation date/time)
FileModifyDate (the filesystem modification date/time)
DateTimeOriginal (date/time when original image was taken)
OffsetTimeOriginal (time zone for DateTimeOriginal)
CreateDate (called DateTimeDigitized by the EXIF spec.)
OffsetTimeDigitized (time zone for CreateDate)
ModifyDate (called DateTime by the EXIF spec.)
OffsetTime (time zone for ModifyDate)

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 09, 2022 Dec 09, 2022

Which one is the File Properties > "Date Created"?  That's the one we want to be equal to "datetimeoriginal".  File Properties > "Date File Created"  NOT critical here.  Thank you!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 09, 2022 Dec 09, 2022

From testing, I think File Properties > "Date Created" is exif DateTimeOriginal

 

I'm not positive because the File Properties panel is not documented, unlike the XMP metadata fields which have a well defined mapping.

 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 09, 2022 Dec 09, 2022

Somethng I just remembered is that when you edit -datecreated, exiftool automatically creates a backup copy of the file ending in "_original" Did you get this? If so, you have to add -overwrite_original_in_place to the command

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 09, 2022 Dec 09, 2022

I created a simple script to read dates, which might help in tracking down which date property contains the value you want to use.

The top part displays the raw data and the bottom part breaks it apart for improved(?) readability.

If you install it, look for the menu "Metadata Deluxe" (it's a joke) and select "Read Dates"

 

#target bridge

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

    var menuLabel = "Metadata Deluxe"; // human friendly. can use spaces
    var menuName = "Metadata_Deluxe"; // computer friendly.  don't use spaces, use camelCase or _ or -

    var reDtsLabel = "Read Dates"
    var reDtsVersion = "2022-12-06"

    //Create a menu option within Adobe Bridge
    var findProjectMenu = MenuElement.find (menuName);
    if (findProjectMenu == null){
         var projectMenu = new MenuElement ('menu', menuLabel, 'before Help', menuName);
        }
    var reDtsMenu = new MenuElement ('command', reDtsLabel, 'at the end of '+menuName);
    reDtsMenu.onSelect = function(){
        reDts();
        }

    function reDts(){ 
        try{       
             // Load the XMP Script library
            if ( ExternalObject.AdobeXMPScript == undefined ) {
                ExternalObject.AdobeXMPScript = new ExternalObject( "lib:AdobeXMPScript" );
            }

            // window
// DIALOG
// ======
var dialog = new Window("dialog"); 
    dialog.text = reDtsLabel; 
  //  dialog.preferredSize.width = 300; 
    dialog.orientation = "column"; 
  //  dialog.alignChildren = ["left","top"]; 
    dialog.spacing = 10; 
    dialog.margins = 16; 
/* not used
var button1 = dialog.add("button", undefined, undefined); 
    button1.text = "Read Dates"; 
    button1.preferredSize.width = 150; 
    button1.preferredSize.height = 32; 
    button1.alignment = ["center","top"]; 
    button1.onClick = reDts;
 */   
var edittext1 = dialog.add('edittext {properties: {multiline: true}}'); 
    edittext1.preferredSize.width = 400; 
    edittext1.preferredSize.height = 200; 
    edittext1.alignment = ["center","top"];

var detailsGrp = dialog.add("group", undefined, {name: "detailsGrp"}); 
    detailsGrp.orientation = "row"; 
    detailsGrp.alignment = ["left","top"];
    detailsGrp.alignChildren = ["left","center"]; 
    detailsGrp.spacing = 10; 
    detailsGrp.margins = 0; 
var details1 = detailsGrp.add("statictext", undefined, undefined); 
    details1.preferredSize.width = 170;
var details2 = detailsGrp.add("statictext", undefined, undefined); 
    details2.text = "Date"; 
    details2.preferredSize.width = 80;
var details3 = detailsGrp.add("statictext", undefined, undefined); 
    details3.text = "Time"; 
    details3.preferredSize.width = 80;
var details4 = detailsGrp.add("statictext", undefined, undefined); 
    details4.text = "Time Zone Offset"; 
    details4.preferredSize.width = 110; 
    
var detailsLbl1 = dialog.add("statictext", undefined, undefined); 
    detailsLbl1.text = "File";
    detailsLbl1.alignment = ["left","top"];
    
var fileDateCreatedGrp = dialog.add("group", undefined); 
    fileDateCreatedGrp.orientation = "row"; 
    fileDateCreatedGrp.alignment = ["left","top"];
    fileDateCreatedGrp.alignChildren = ["left","center"]; 
    fileDateCreatedGrp.spacing = 10; 
    fileDateCreatedGrp.margins = 0; 
var fileDateCreated1 = fileDateCreatedGrp.add("statictext", undefined, undefined); 
    fileDateCreated1.text = "File created date:";
    fileDateCreated1.preferredSize.width = 170;
var fileDateCreated2 = fileDateCreatedGrp.add("statictext", undefined, undefined); 
    fileDateCreated2.preferredSize.width = 80;
var fileDateCreated3 = fileDateCreatedGrp.add("statictext", undefined, undefined); 
    fileDateCreated3.preferredSize.width = 80;
var fileDateCreated4 = fileDateCreatedGrp.add("statictext", undefined, undefined); 
    fileDateCreated4.preferredSize.width = 110;    
    
var fileDateModifiedGrp = dialog.add("group", undefined); 
    fileDateModifiedGrp.orientation = "row"; 
    fileDateModifiedGrp.alignment = ["left","top"];
    fileDateModifiedGrp.alignChildren = ["left","center"]; 
    fileDateModifiedGrp.spacing = 10; 
    fileDateModifiedGrp.margins = 0; 
var fileDateModified1 = fileDateModifiedGrp.add("statictext", undefined, undefined); 
    fileDateModified1.text = "File created modified:";
    fileDateModified1.preferredSize.width = 170;
var fileDateModified2 = fileDateModifiedGrp.add("statictext", undefined, undefined); 
    fileDateModified2.preferredSize.width = 80;
var fileDateModified3 = fileDateModifiedGrp.add("statictext", undefined, undefined); 
    fileDateModified3.preferredSize.width = 80;
var fileDateModified4 = fileDateModifiedGrp.add("statictext", undefined, undefined); 
    fileDateModified4.preferredSize.width = 110;   
  
var xmpExifDateTimeOriginalGrp = dialog.add("group", undefined); 
    xmpExifDateTimeOriginalGrp.orientation = "row"; 
    xmpExifDateTimeOriginalGrp.alignment = ["left","top"];
    xmpExifDateTimeOriginalGrp.alignChildren = ["left","center"]; 
    xmpExifDateTimeOriginalGrp.spacing = 10; 
    xmpExifDateTimeOriginalGrp.margins = 0; 
var xmpExifDateTimeOriginal1 = xmpExifDateTimeOriginalGrp.add("statictext", undefined, undefined); 
    xmpExifDateTimeOriginal1.text = "XMP exif: Date Time Original:";
    xmpExifDateTimeOriginal1.preferredSize.width = 170;
var xmpExifDateTimeOriginal2 = xmpExifDateTimeOriginalGrp.add("statictext", undefined, undefined); 
    xmpExifDateTimeOriginal2.preferredSize.width = 80;
var xmpExifDateTimeOriginal3 = xmpExifDateTimeOriginalGrp.add("statictext", undefined, undefined); 
    xmpExifDateTimeOriginal3.preferredSize.width = 80;
var xmpExifDateTimeOriginal4 = xmpExifDateTimeOriginalGrp.add("statictext", undefined, undefined); 
    xmpExifDateTimeOriginal4.preferredSize.width = 110;
    
var xmpPsDateCreatedGrp = dialog.add("group", undefined); 
    xmpPsDateCreatedGrp.orientation = "row"; 
    xmpPsDateCreatedGrp.alignment = ["left","top"];
    xmpPsDateCreatedGrp.alignChildren = ["left","center"]; 
    xmpPsDateCreatedGrp.spacing = 10; 
    xmpPsDateCreatedGrp.margins = 0; 
var xmpPsDateCreated1 = xmpPsDateCreatedGrp.add("statictext", undefined, undefined); 
    xmpPsDateCreated1.text = "XMP photoshop: Date Created:";
    xmpPsDateCreated1.preferredSize.width = 170;
var xmpPsDateCreated2 = xmpPsDateCreatedGrp.add("statictext", undefined, undefined); 
    xmpPsDateCreated2.preferredSize.width = 80;
var xmpPsDateCreated3 = xmpPsDateCreatedGrp.add("statictext", undefined, undefined); 
    xmpPsDateCreated3.preferredSize.width = 80;
var xmpPsDateCreated4 = xmpPsDateCreatedGrp.add("statictext", undefined, undefined); 
    xmpPsDateCreated4.preferredSize.width = 110;

var xmpXmpCreateDateGrp = dialog.add("group", undefined); 
    xmpXmpCreateDateGrp.orientation = "row"; 
    xmpXmpCreateDateGrp.alignment = ["left","top"];
    xmpXmpCreateDateGrp.alignChildren = ["left","center"]; 
    xmpXmpCreateDateGrp.spacing = 10; 
    xmpXmpCreateDateGrp.margins = 0; 
var xmpXmpCreateDate1 = xmpXmpCreateDateGrp.add("statictext", undefined, undefined); 
    xmpXmpCreateDate1.text = "XMP xmp: Create Date:";
    xmpXmpCreateDate1.preferredSize.width = 170;
var xmpXmpCreateDate2 = xmpXmpCreateDateGrp.add("statictext", undefined, undefined); 
    xmpXmpCreateDate2.preferredSize.width = 80;
var xmpXmpCreateDate3 = xmpXmpCreateDateGrp.add("statictext", undefined, undefined); 
    xmpXmpCreateDate3.preferredSize.width = 80;
var xmpXmpCreateDate4 = xmpXmpCreateDateGrp.add("statictext", undefined, undefined); 
    xmpXmpCreateDate4.preferredSize.width = 110;
    
var xmpXmpModifyDateGrp = dialog.add("group", undefined); 
    xmpXmpModifyDateGrp.orientation = "row"; 
    xmpXmpModifyDateGrp.alignment = ["left","top"];
    xmpXmpModifyDateGrp.alignChildren = ["left","center"]; 
    xmpXmpModifyDateGrp.spacing = 10; 
    xmpXmpModifyDateGrp.margins = 0; 
var xmpXmpModifyDate1 = xmpXmpModifyDateGrp.add("statictext", undefined, undefined); 
    xmpXmpModifyDate1.text = "XMP xmp: Modify Date:";
    xmpXmpModifyDate1.preferredSize.width = 170;
var xmpXmpModifyDate2 = xmpXmpModifyDateGrp.add("statictext", undefined, undefined); 
    xmpXmpModifyDate2.preferredSize.width = 80;
var xmpXmpModifyDate3 = xmpXmpModifyDateGrp.add("statictext", undefined, undefined); 
    xmpXmpModifyDate3.preferredSize.width = 80;
var xmpXmpModifyDate4 = xmpXmpModifyDateGrp.add("statictext", undefined, undefined); 
    xmpXmpModifyDate4.preferredSize.width = 110;

var xmpXmpMetadataDateGrp = dialog.add("group", undefined); 
    xmpXmpMetadataDateGrp.orientation = "row"; 
    xmpXmpMetadataDateGrp.alignment = ["left","top"];
    xmpXmpMetadataDateGrp.alignChildren = ["left","center"]; 
    xmpXmpMetadataDateGrp.spacing = 10; 
    xmpXmpMetadataDateGrp.margins = 0; 
var xmpXmpMetadataDate1 = xmpXmpMetadataDateGrp.add("statictext", undefined, undefined); 
    xmpXmpMetadataDate1.text = "XMP xmp: Metadata Date:";
    xmpXmpMetadataDate1.preferredSize.width = 170;
var xmpXmpMetadataDate2 = xmpXmpMetadataDateGrp.add("statictext", undefined, undefined); 
    xmpXmpMetadataDate2.preferredSize.width = 80;
var xmpXmpMetadataDate3 = xmpXmpMetadataDateGrp.add("statictext", undefined, undefined); 
    xmpXmpMetadataDate3.preferredSize.width = 80;
var xmpXmpMetadataDate4 = xmpXmpMetadataDateGrp.add("statictext", undefined, undefined); 
    xmpXmpMetadataDate4.preferredSize.width = 110;

var button2 = dialog.add("button", undefined, undefined); 
    button2.text = "Cancel"; 
    button2.alignment = ["right","top"]; 

reDts();
dialog.show();

    // functions
    function reDts(){
        if(app.document.selections.length > 1){
            alert("Multiple files selected\nOnly the first one will be read");
            }
        
        if(app.document.selections.length == 1){
        var selectedFile = app.document.selections[0]

        if(selectedFile.spec instanceof File){ // if selectedFiles is a file, we don't want to list folders
        
        // File spec dates
        // File created
        var fileDateCreated = new Date(); // get file date created and format to ISO
        fileDateCreated = selectedFile.spec.created;
        var fileDateCreatedYYYY = fileDateCreated.getFullYear();
        var fileDateCreatedMM = fileDateCreated.getMonth()+1; // add +1 becasue getMonth() returns the month (from 0 to 11) of a date, 0=January
            if(fileDateCreatedMM < 10){fileDateCreatedMM = "0"+fileDateCreatedMM}
        var fileDateCreatedDD = fileDateCreated.getDate();
            if(fileDateCreatedDD < 10){fileDateCreatedDD = "0"+fileDateCreatedDD}
        var fileDateHours = fileDateCreated.getHours();
        var fileDateMinutes = fileDateCreated.getMinutes();
        var fileDateSeconds = fileDateCreated.getSeconds();
        var fileDateTimezoneOffset = fileDateCreated.getTimezoneOffset();     
        var fileDateCreatedTT = fileDateCreated.toTimeString(); // fileDateCreated.getHours()+":"+fileDateCreated.getMinutes()+":"+fileDateCreated.getSeconds();
            fileDateCreatedTT = fileDateCreatedTT.split(" GMT").join("");   
        var fileDateCreatedDisplay = fileDateCreatedYYYY+"-"+fileDateCreatedMM+"-"+fileDateCreatedDD+"T"+fileDateCreatedTT;
            
        // convert getTimezoneOffset (total minutes) to hours:minutes format
        function formatOffsetToHhMm (offsetInMins) {
            var negative=offsetInMins<0?"-":"";
            var positiveMins= Math.abs(offsetInMins);
            var hours   = Math.floor(positiveMins/ 60);
            var mins = Math.floor((positiveMins- ((hours * 3600)) / 60));
            if (hours   < 10) {hours   = "0"+hours;}
            if (mins < 10) {mins = "0"+mins;}
            return negative+hours+':'+mins;
            }
   // $.writeln(formatOffsetToHhMm(fileDateTimezoneOffset))    
   //  2022-11-29T20:11:46-0800
   /*
        fileDateCreated2.text = fileDateCreatedYYYY+"-"+fileDateCreatedMM+"-"+fileDateCreatedDD
        fileDateCreated3.text = fileDateCreated.getHours()+":"+fileDateCreated.getMinutes()+":"+fileDateCreated.getSeconds()
        fileDateCreated4.text = formatOffsetToHhMm(fileDateTimezoneOffset)
    */
        
        // File modified date
        var fileDateModified = new Date(); // get file date created and format to ISO
        fileDateModified = selectedFile.spec.modified;
        var fileDateModifiedYYYY = fileDateModified.getFullYear();
        var fileDateModifiedMM = fileDateModified.getMonth();
            if(fileDateModifiedMM < 10){fileDateModifiedMM = "0"+fileDateModifiedMM}
        var fileDateModifiedDD = fileDateModified.getDay();
            if(fileDateModifiedDD < 10){fileDateModifiedDD = "0"+fileDateModifiedDD}
        var fileDateModifiedTT = fileDateModified.toTimeString(); // fileDateModified.getHours()+":"+fileDateModified.getMinutes()+":"+fileDateModified.getSeconds();
            fileDateModifiedTT = fileDateModifiedTT.split(" GMT").join("");
        var fileDateModifiedDisplay = fileDateModifiedYYYY+"-"+fileDateModifiedMM+"-"+fileDateModifiedDD+"T"+fileDateModifiedTT;
            
        // XMP dates
        var md = selectedFile.synchronousMetadata; // read embedded metadata
        var xmp = new XMPMeta(md.serialize()); // read embedded XMP
        var xmpExifDateTimeOriginal = xmp.getProperty(XMPConst.NS_EXIF, "DateTimeOriginal"); // Exif Date Time Original
        // bad prop name var xmpExifDateTimeDigitized  = xmp.getProperty(XMPConst.NS_EXIF, "DateTimeDigitized "); // Exif Date Time Original Offset
        var xmpPsDateCreated = xmp.getProperty(XMPConst.NS_PHOTOSHOP, "DateCreated"); // IPTC (Photoshop) Date Created
        var xmpCreateDate = xmp.getProperty(XMPConst.NS_XMP,  "CreateDate") // xmp:CreateDate
        var xmpModifyDate = xmp.getProperty(XMPConst.NS_XMP,  "ModifyDate")// xmp:ModifyDate
        var xmpMetadataDate = xmp.getProperty(XMPConst.NS_XMP,  "MetadataDate", XMPConst.XMPDATE)// xmp:MetadataDate

var arr1 = [];
        // separate date/time
        function sepDateTime(fullDateTime){
            arr1 = [];
            var spiltDate = [];
            var dateOnly = "";
            var splitTime = [];
            var timeOnly = "";
            var timeOffsetOnly = "";

            if(fullDateTime.toString().indexOf("T") !== -1){ // TODO undefined on dateTimeOriginal 
                spiltDate = fullDateTime.toString().split("T");
                dateOnly = spiltDate[0];

                if(spiltDate[1].toString().indexOf("Z") !== -1){ // if there is a "Z" time zone designator
                    splitTime = spiltDate[1].split("Z");
                    timeOnly = splitTime[0];
                    timeOffsetOnly = "Z"+splitTime[1];
                    }
                if(spiltDate[1].toString().indexOf("-") !== -1){ // if there is a "-" time zone designator
                    splitTime = spiltDate[1].split("-");
                    timeOnly = splitTime[0];
                    timeOffsetOnly = "-"+splitTime[1];
                    }
                if(spiltDate[1].toString().indexOf("+") !== -1){ // if there is a "+" time zone designator
                    splitTime = spiltDate[1].split("+");
                    timeOnly = splitTime[0];
                    timeOffsetOnly = "+"+splitTime[1];
                    }
                var tzd = /Z|-|\+/i // regex search for "Z" or "-" or "+"
                if(tzd.test(spiltDate[1]) == false){
                    timeOnly = spiltDate[1];
                    }
                }
                else{
                    dateOnly = fullDateTime;
                    }
                arr1.push(dateOnly,timeOnly,timeOffsetOnly);
            } // CLOSE function sepDateTime
      //  sepDateTime(xmpExifDateTimeOriginal)
        
        function readFileDateCreated(){
           sepDateTime(fileDateCreatedDisplay)
            fileDateCreated2.text = arr1[0];
            fileDateCreated3.text = arr1[1];
            fileDateCreated4.text = arr1[2];
            }
        readFileDateCreated()
        
        function readFileDateModified(){
           sepDateTime(fileDateModifiedDisplay)
            fileDateModified2.text = arr1[0];
            fileDateModified3.text = arr1[1];
            fileDateModified4.text = arr1[2];
            }
        readFileDateModified();  
        
        function readXmpExifDateTimeOriginal(){
            sepDateTime(xmpExifDateTimeOriginal)
            xmpExifDateTimeOriginal2.text = arr1[0];
            xmpExifDateTimeOriginal3.text = arr1[1];
            xmpExifDateTimeOriginal4.text = arr1[2];
            }
        if(xmpExifDateTimeOriginal){
           readXmpExifDateTimeOriginal();
           }
       
       function readXmpPsDateCreated(){
           sepDateTime(xmpPsDateCreated)
            xmpPsDateCreated2.text = arr1[0];
            xmpPsDateCreated3.text = arr1[1];
            xmpPsDateCreated4.text = arr1[2];
            }
        if(xmpPsDateCreated){
            readXmpPsDateCreated();
           }
   
      function readXmpCreateDate(){
           sepDateTime(xmpCreateDate)
            xmpXmpCreateDate2.text = arr1[0];
            xmpXmpCreateDate3.text = arr1[1];
            xmpXmpCreateDate4.text = arr1[2];
            }
        if(xmpCreateDate){
            readXmpCreateDate();
            }
        
            function readXmpModifyDate(){
           sepDateTime(xmpModifyDate)
            xmpXmpModifyDate2.text = arr1[0];
            xmpXmpModifyDate3.text = arr1[1];
            xmpXmpModifyDate4.text = arr1[2];
            }
        if(xmpModifyDate){
            readXmpModifyDate();
            }
    
        function readXmpMetadataDate(){
           sepDateTime(xmpMetadataDate)
            xmpXmpMetadataDate2.text = arr1[0];
            xmpXmpMetadataDate3.text = arr1[1];
            xmpXmpMetadataDate4.text = arr1[2];
            }
        if(xmpMetadataDate){
            readXmpMetadataDate();
            }   
        }

        edittext1.text = 
        "File created date: "+fileDateCreatedDisplay+"\n"+
        "File modified date: "+fileDateModifiedDisplay+"\n"+
        "XMP exif: Date Time Original: "+xmpExifDateTimeOriginal+"\n"+
        "XMP photoshop: Date Created: "+xmpPsDateCreated+"\n"+
        "XMP xmp: Create Date: "+xmpCreateDate+"\n"+
        "XMP xmp: Modify Date: "+xmpModifyDate+"\n"+
        "XMP xmp: Metadata Date: "+xmpMetadataDate
           
           } // CLOSE if(app.document.selections.length == 1)
       else{edittext1.text = "NO FILE SELECTED"}
            } // CLOSE reDts(){ 
        } // CLOSE try
    catch(e){
        alert(e + " " + e.line);
        }
    
    }


    } //CLOSE if(BridgeTalk.appName == "bridge"){

  

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 11, 2022 Dec 11, 2022

Wow, Greg!  That's a lot of code. 

But it identified that 

XMP exif: Date Time Original: 1899-12-31T00:00:00 which I originally changed properly for Fotoxx (manually/each image) is the problem.  It got corrupted. Could corruption possibly be some instruction in Script #1? It doesn't rerpresent the proper Date Taken iused for image filename: YYYYMMDD-RLM-nnnn.jpg.  

 

Thus, solution is for selected image(s):

1. Read YYYYMMDD  first part of each filename YYYYMMDD-RLM-nnnn.jpg.

2. Alternate safeguard turn on/off:  Do only if:

  Camera Make (scanner) = "IMAGE" and

  Camera Model (scanner) = "M125"

3. Since Bridge will allow me to manually change it one-by-one, write out XMP exif: Date Time Original in proper format = input's YYYYMMDD per file. ( "T00:00:00" ok)

 

If this possible, Script #2 would save me many man-months fixing one-by-one 1,000+ now scanned images. There seems no problem with those taken with real camera...another 2,000+... unless camera clock dead.  I used a Bridge workflow to originally create these filenames..... but somehow input Date Time Original got corrupted.

 

Thanks for your MANY hours coming up with  menu "Metadata Deluxe".  Very Deluxe!  It worked!

Bob

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 11, 2022 Dec 11, 2022

Greg, after carefully looking at scanned images, ONLY 138 of 1000+ got corrupted, many groups with same XMP exif: Date Time Original.  I believe I can relatively easily fix these "few' images without more programming by you.  So disregard my request for Script #2 above.  Thanks for all your help.  Stand by.  Bob

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 11, 2022 Dec 11, 2022

Bob,  very glad to hear it's only 138 files to be fixed. (still a lot of work to fix). I don't think script #1 would have changed XMP exif: Date Time Original. That script reads that property but it doesn't have any commands to edit it.  Maybe the final step of serializing and savig the XMP packet could have changed Date Time Original (Date Modified is definatley changed), but I doubt it. If you see this happen again let me know. We definatley want to track that down for everyone's benefit.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 12, 2022 Dec 12, 2022

Woo Hoo!  Greg, the cleanup is done.  "Date" (taken) in Capture ONE now sorts proper.  Thanks for Metadata Deluxe which help narrow the field(s) to be updated.  Bob

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 12, 2022 Dec 12, 2022
LATEST

You're very welcome. There are many questions about dates on the forum, so I'm hoping this script will be useful to a lot of people.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines