ExifTool Forum

ExifTool => The "exiftool" Application => Topic started by: tosz on January 14, 2016, 10:53:18 AM

Title: mass applying several tags to a list of files
Post by: tosz on January 14, 2016, 10:53:18 AM
Hello,
I'm in the process of coding my own DAM. I can import a delimited list of tags defined in -tagsfromfile and manage them in my software. I collect changes to the subject tag and would like to sync them back to the affected files in a batch (under Windows).

I have two questions:

Is it possible to start exiftool and read all changes from a file? Something as:

[filename1; XMP-lr:HierarchicalSubject="that/text, or/this/text"]
[filename2; XMP-lr:HierarchicalSubject="some/text, some/more/text"]
[filename3; XMP-lr:HierarchicalSubject="another/text, and/even/more/text"]

This would increase speed I think. I know I can start exiftool and let it stay open, but how do I feed it with the long block of parameters?

Second questions: is there a limit on the length of arguments? HierarchicalSubject can get pretty long. Any considerations related to charsets?

Thanks in advance for any reply,
Tosz.
Title: Re: mass applying several tags to a list of files
Post by: Phil Harvey on January 14, 2016, 12:54:03 PM
Hi Tosz,

Quote from: tosz on January 14, 2016, 10:53:18 AM
Is it possible to start exiftool and read all changes from a file? Something as:

[filename1; XMP-lr:HierarchicalSubject="that/text, or/this/text"]
[filename2; XMP-lr:HierarchicalSubject="some/text, some/more/text"]
[filename3; XMP-lr:HierarchicalSubject="another/text, and/even/more/text"]

Yes.  You may import a CSV- or JSON-format file with -csv or -j option.

Quotehow do I feed it with the long block of parameters?

With -stay_open true -@ FILE, you write the parameters to FILE.  FILE may be "-" to pipe the parameters via stdin.  But if you are importing a CSV or JSON file, the tag values will be in the file, and not in the command-line arguments.

QuoteSecond questions: is there a limit on the length of arguments?

No.  There is a command-line-length limitation in Windows, but no limitation if you use the -@ option for the command arguments.  This is also better for special characters, except that newlines are used as a delimiter so it gets tricky if you want to write a value containing newlines.

- Phil