I have a batch script to set XMP:Subject Exif tags on pictures in bulk.

tags.txt has all links of the pages and the tags. Links and Tags are separated by =.

This script should divide the URL and Tags divided by = remove the https://www. and all forward slashe / from it. And it will find a folder with this name.

Next, it should take the 2nd half of the tags.txt line, after =, and set that as XMP:Subject using exiftool on all jpg images.

Then it should go back and read the next line in tags.txt, which has different link and different tags.

but the problem is, its taking the tags from the 1st line in tags.txt and applying that to all images in all folders. Then it is taking the 2nd line tags, and setting these on all images in all folders.

Can someone please help me fix this issue?

:: bat file
:: V 4.0
@ECHO off
setlocal enabledelayedexpansion

set batpath=%~dp0


For /F "usebackq tokens=1,2  delims==" %%a in (tags.txt) Do (
  set link=%%a
  set tags=%%b

for /f %%h in ('type weblinks.txt') do (
    set link=%%h

set foldername=!link:https://www.=!
set foldername=!foldername:/=!

cd /d !foldername!

for /f "tokens=*" %%G in ('dir /b *.jpg') do ( 

    set imagename=%%G
    rem echo "!imagename!"
    set imagenameonly=%%~nG
    set extn=%%~xG

"!batpath!\exiftool" -XMP:Subject="!tags!" "!imagenameonly!!extn!"

echo. ----------------------- !foldername!\!imagenameonly!!extn! ----->>"!batpath!\log.txt"
"!batpath!\exiftool" -XMP:Subject -a "!imagenameonly!!extn!" >>"!batpath!\log.txt"


    del *.*_original

cd /d !batpath!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.