批量 exif 标签 bat 脚本无法正常工作

批量 exif 标签 bat 脚本无法正常工作

我有一个批处理脚本,可以XMP:Subject批量设置图片的 Exif 标签。

tags.txt包含页面的所有链接和标签。链接和标签之间用 分隔=

此脚本应将 URL 和标签分开,然后=删除其中https://www.的所有正斜杠/。它将找到一个具有此名称的文件夹。

tags.txt接下来,它应该取该行的后半部分=,并将其设置为在所有 jpg 图像上XMP:Subject使用。exiftool

然后它应该返回并读取下一行tags.txt,该行具有不同的链接和不同的标签。

但问题是,它先将第一行的标签tags.txt应用到所有文件夹中的所有图像上。然后,它再将第二行的标签应用到所有文件夹中的所有图像上。

有人可以帮我解决这个问题吗?

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

set batpath=%~dp0


echo.>"!batpath!\log.txt"

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!


)
)

相关内容