ExifTool Forum

ExifTool => Newbies => Topic started by: sylf on December 12, 2021, 09:13:15 AM

Title: Command line - Windows : exiftooling paths listed in a txt file
Post by: sylf on December 12, 2021, 09:13:15 AM
Hello.

This command line :

@ECHO OFF
for /r C:\dir1\dir2\dir3 %%Y in (*.jpg *.jpeg *.JPG *.JPEG *.tif *.tiff *.TIF *.TIFF) do (
exiftool.pl -X %%Y > C:\dir1\dir2\%%~nY.xml)

... goes through a directory, takes one image file at a time, exiftools it and outputs an xml file with metadata. This is nice !

Instead of going through a directory, I want now my complete paths to be extracted from a txt file like this :

C:\dir1\a.jpg
C:\dir2\dir1\b.jpg
C:\dir3\dir1\dir4\c.tif

Each path (= each line in my txt file) should replace "C:\dir1\dir2\dir3" one by one in the script above.

I found some ideas like https://stackoverflow.com/questions/155932/how-do-you-loop-through-each-line-in-a-text-file-using-a-windows-batch-file, but could not apply them with success.

Any help very welcome :)

S
Title: Re: Command line - Windows : exiftooling paths listed in a txt file
Post by: Phil Harvey on December 12, 2021, 09:21:50 AM
This looks like common mistake #3 (https://exiftool.org/mistakes.html#M3) to me.  Launching ExifTool separately for each file is very slow.

If you have all the file paths, one per line in a text file (let's call it "file_list.txt"), you would do something like this:

exiftool -@ file_list.txt -X -w %d%f.xml

- Phil
Title: Re: Command line - Windows : exiftooling paths listed in a txt file
Post by: sylf on December 12, 2021, 10:03:58 AM
Phil,
Happy with this so simple solution to my common mistake #3 :)
By the way, I have many paths with spaces like :
C:\dir name 1\a.jpg
C:\dir2\dir1\file name b.jpg
C:\dir name 2\dir1\file name b.jpg

I looked for solutions. For the Command line on Windows, it is said that escaping ways like putting "^" before the space or double-quoting either the entire path or only the concerned section (example : C:\"dir name 1"\a.jpg) should sometimes work. But, in my case, it failed.
If you had any comment on that, I would pay attention.
Thank you.
Sylvain
Title: Re: Command line - Windows : exiftooling paths listed in a txt file
Post by: StarGeek on December 12, 2021, 10:25:59 AM
Quote from: sylf on December 12, 2021, 10:03:58 AMFor the Command line on Windows, it is said that escaping ways like putting "^" before the space or double-quoting either the entire path or only the concerned section

You would do this on the command line but when exiftool reads a text file with the -@ (Argfile) option (https://exiftool.org/exiftool_pod.html#ARGFILE), there should be no quotes or escape characters. The text file should be exactly as you listed
C:\dir name 1\a.jpg
C:\dir2\dir1\file name b.jpg
C:\dir name 2\dir1\file name b.jpg
Title: Re: Command line - Windows : exiftooling paths listed in a txt file
Post by: sylf on December 12, 2021, 10:33:14 AM
Well, I just tried, StarGeek...
And I confirm... this is true !
So good :)