Wenn eine Batch-Datei mit SHELL gestartet wird, dann ist in der Laufzeit der Batch-Datei der aktuelle Pfad = Das Dokumente-Verzeichnis in Windows, i. d. R. = C:\Users\DeinBenutzername\Documents.
Wenn "exiftool.exe" nicht im Dokumente-Verzeichnis oder in einem Verzeichnis liegt, der in der PATH-Variable hinterlegt ist, dann scheitert die Batch daran, dass "exiftool.exe" nicht gefunden wird und es wird eine leere CSV-Datei erzeugt.
Du musst innerhalb der Batch-Datei erst in der Verzeichnis wechseln, wo die "exiftool.exe" liegt.
Das geht z. B. mit CD /D "C:\Pfad\von\exiftool" oder PUSHD "C:\Pfad\von\exiftool".
Und danach dann deinen exiftool-Befehl ausführen.
Du kannst auch ohne vorherigen Verzeichnis-Wechsel arbeiten. Du musst dann nur exiftool.exe inkl. kompletten Pfad ausführen:
"C:\Pfad\zu\exiftool\exiftool.exe" -csv F:\00_Entwickelte_Bilder\Kategorien -r > F:\20_IPTC-Daten_auslesen\ExifTool\TMP.csv
---------------------
Wenn du exiftool.exe ohne Batch-Datei ausführen möchtest, dann lautet der SHELL-Befehl:
Shell "cmd /c """"C:\Pfad\von\exiftool\exiftool.exe"" -csv ""F:\00_Entwickelte_Bilder\Kategorien"" -r > ""F:\20_IPTC-Daten_auslesen\ExifTool\TMP.csv"""""
Man könnte sich ein paar "-Zeichen sparen, wenn alle Pfade keine Leerzeichen enthalten. Aber so ist der Befehl universeller einsetzbar.
---------------------
Noch ein kleiner Hinweis:
Der Shell-Befehl arbeitet asynchron zu VBA, d. h. der VBA-Code pausiert nicht, während der Shell-Befehl läuft. Das musst du im VBA-Code berücksichtigen, falls noch nicht geschehen.