ExifTool Forum

ExifTool => Newbies => Topic started by: ting on January 11, 2020, 02:08:41 AM

Title: image filename renaming using a .BAT batchfile...
Post by: ting on January 11, 2020, 02:08:41 AM
Hello all,

Maybe I'm looking to do the impossible here - as in running a batch file routine to rename a collection of images in a folder?

For one reason or other and, in some instances, I ended up renaming some of my existing RAW files sequentially - as in this example:

Quote
110803rc_HK_Hungry_Ghost_015.CR2
110803rc_HK_Hungry_Ghost_015.xmp
110803rc_HK_Hungry_Ghost_016.CR2
110803rc_HK_Hungry_Ghost_016.xmp
110803rc_HK_Hungry_Ghost_017.CR2
110803rc_HK_Hungry_Ghost_017.xmp

Renaming one's original picture files in this fashion maybe fine for commercial assignments, etc. As I see it, this is not particularly effective when it comes to file naming in stock photography and other uses. Maybe a personal predilection perhaps?

Anyway, long story short, I am looking to "rename" the renamed file back to this pattern:

Quote
110803rc_HK_Hungry_Ghost_4832.CR2
110803rc_HK_Hungry_Ghost_4832.xmp
110803rc_HK_Hungry_Ghost_4833.CR2
110803rc_HK_Hungry_Ghost_4833.xmp

Since these are Canon .CR2 files and, thanks to ExifTools and the ExifToolGUI apps, I can pick up the "Fileindex" number from the Metadata Maker notes - the "4832" part. That's the easy part.

What I'm doing right now is a copy and paste operation. Here I select the 110803rc_HK_Hungry_Ghost_015.CR2 file. Then, go to the Maker notes and select the corresponding Fileindex number. I then copy that and replace the _015 part. Fine if this is a one of thing.

Unfortunately, it's not. In each folder there are a 100 + images.

My question is this, is it possible to create a batch file to automate this reaming process? And, if so, how can I get this done?

Suggestions would be much appreciated.

Cheers,

Rogan
Title: Re: image filename renaming using a .BAT batchfile...
Post by: greybeard on January 11, 2020, 05:20:35 AM
What about:

exiftool '-filename<${filename;s/_\d+\..*//}_$fileindex.%e'  .



Title: Re: image filename renaming using a .BAT batchfile...
Post by: Hayo Baan on January 11, 2020, 06:37:39 AM
Since you are on Windows, change the single quote to double quotes in Greybeards command.
Title: Re: image filename renaming using a .BAT batchfile...
Post by: StarGeek on January 11, 2020, 11:05:14 AM
The one problem is that FileIndex won't appear in the XMP files and they won't get renamed.  Additionally, you would have to rename the XMP files first because if the JPG is renamed first, then the XMP can't be matched correctly.

I think this will do it
exiftool -fileOrder -Filename -TagsFromFile %d%f.jpg '-filename<${filename;s/_\d+\..*//}_$fileindex.%e'  .

It uses the -fileorder option (https://exiftool.org/exiftool_pod.html#fileOrder-NUM---TAG) to sort the files by filename first.  the dash before Filename tells exiftool to reverse the sort order, so the xmp files get processed first.  The only problem would be when a file extension comes after XMP, but the only file type exiftool processes normally that falls after XMP is ZIP.  So it shouldn't be a problem unless exiftool is specifically told to use a different filetype.
Title: Re: image filename renaming using a .BAT batchfile...
Post by: Hayo Baan on January 11, 2020, 05:49:30 PM
@stargeek, good catch! Yes, the xmps would indeed need to be treated differently and your command takes care of that very cleverly 8)
Title: Re: image filename renaming using a .BAT batchfile...
Post by: StarGeek on January 11, 2020, 08:59:15 PM
Phil gets the credit.  It's something I remember from a few years back.
Title: Re: image filename renaming using a .BAT batchfile...
Post by: Phil Harvey on January 12, 2020, 03:11:08 PM
It's nice to get credit for something I can't even remember.  ;)  But I do think that StarGeek is clever.

- Phil