How do %$ and $* differ?

  • This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.
TCC 20.00.14 x64 Windows 10 [Version 6.3.16299]

I have been struggling a bit with the command-line tool Exiftool, a popular program that reads and writes EXIF and IPTC data from/to image files. The program has had some trials and tribulations under Windows 10 but the latest version now runs on my machine.

I launch it via batch file this way:

c:\apps\exiftool\exiftool.exe %$

With arguments that tell it to read data from a JPEG or other image file, the program works fine.

With arguments that tell it to write new EXIF or IPTC data to a file, though, it fails with error messages indicating that I'd made errors in its command line (I hadn't).

I tried quoting %$ within the batch file and got other kinds of errors, also indicating errors in the Exiftool command line.

Then I decided to try using the parameter %* instead of %$ in the batch file — and the "write" features now work.

What might TCC be passing via %$ or "%$" that's different from what it passes via %*?

If it matters: when I set it up to run as an alias, this way:

alias exiftool `c:\apps\exiftool\exiftool.exe %$`

... the %$ parameter worked just fine.
The command tail passed to the .btm file was the same in both cases:

–keywords=EXIF –keywords=editor filename.jpg

It worked with %* and not with %$. These arguments seem pretty harmless, but is there anything in there that might cause %$ to pass something different from the above string, verbatim? (I used EN dashes above just to make the hyphens stand out. In the actual command they were regular hyphens.)
Would a setdos /x (some argument here) command have helped? I'm not sweating this now that I have an easy workaround, but it'd be good to know if there are other workarounds as well. Thanks.