需要对一批jpg格式的图片,根据其【右键】-【属性】-【详细信息】中的【标记】里的内容进行读取,然后输出到文本,每个图片输出一行,每个参数用分号隔开,也要有批量修改图片此参数的功能。
图例如下
我在【第三方命令行】板块的帖子中
http://www.bathome.net/viewthrea ... amp;highlight=jhead
用jhead工具查到这些参数是在【IPTC data】下的【Keywords】显示,参照5楼大佬的代码,可以成功读取到了图片的这个参数,但是没找到修改这个参数的命令。
我提问GPT机器人,给我了两串代码,但是我跑不起来。因为不了解相关的第三方工具,也没有找到详尽的中文教程,所以不知道是哪里的问题,求大佬们指教。多谢!!
第一段
提问:如何使用bat 脚本实现批量修改JPG图片的IPTC参数
回答:要实现批量修改JPG图片的IPTC参数,可以使用exiftool.exe来完成。exiftool.exe是一个命令行工具,可以读取和修改图像的元数据。下面是一个示例脚本,可以批量修改指定文件夹下的所有JPG图片的IPTC参数:- @echo off
-
- setlocal enabledelayedexpansion
-
-
- set "exiftool_path=C:\path\to\exiftool.exe"
-
- set "image_folder=C:\path\to\image\folder"
-
-
- for %%f in (%image_folder%\*.jpg) do (
-
- set "file_path=%%~dpf%%~nf"
-
-
- %exiftool_path% ^
-
- -overwrite_original ^
-
- -IPTC:ObjectName="New Object Name" ^
-
- -IPTC:Caption-Abstract="New Caption" ^
-
- -IPTC:Keywords="Keyword1;Keyword2" ^
-
- "!file_path!.jpg"
-
- )
复制代码 在上面的脚本中,将exiftool.exe的路径设置为变量“exiftool_path”,将图像文件夹路径设置为变量“image_folder”。使用“for”循环遍历指定文件夹下的所有JPG图片,对于每个图片文件,使用exiftool.exe修改其IPTC参数(这里只修改了ObjectName、Caption-Abstract和Keywords),然后将原始文件覆盖保存。
需要注意的是,exiftool.exe的参数名是区分大小写的,不要将参数名写错。另外,这里使用了“setlocal enabledelayedexpansion”来启用延迟扩展变量,否则在循环中使用“!file_path!”时会出现问题。(1/10)
第二段:
提问: 如何使用bat脚本实现批量读取图片的IPTC参数并输出到文本,然后通过文本批量修改图片的IPTC参数
回答:这是一个基本的bat脚本的框架,用于读取图片的IPTC参数并将其输出到文本。前提是需要安装ExifTool并在系统环境变量中设置其路径。- @echo off
- setlocal EnableDelayedExpansion
-
-
-
- set "folder=C:\path\to\folder\with\images"
-
- set "outfile=C:\path\to\output\file.txt"
-
-
- echo "File, Creator, Title, Description" > %outfile%
-
-
-
- for %%f in (%folder%\*.jpg) do (
-
- set "filename=%%~nxf"
-
- set "creator="
-
- set "title="
-
- set "description="
-
-
- for /f "tokens=1,2 delims=:" %%a in ('exiftool -s3 -iptc:Creator -iptc:ObjectName -iptc:Caption-Abstract "%%~f"') do (
-
- if "%%a"=="Creator" set "creator=%%b"
-
- if "%%a"=="ObjectName" set "title=%%b"
-
- if "%%a"=="Caption-Abstract" set "description=%%b"
-
- )
-
-
- echo "!filename!,!creator!,!title!,!description!" >> %outfile%
-
- )
- echo "Done."
-
- pause
复制代码 这个脚本会将指定文件夹中的所有`.jpg`文件的IPTC参数读取到一个文本文件中。你可以使用文本编辑器或Excel等工具将其打开和编辑。在这个基础之上,你可以编写另一个bat脚本,以读取此文件并使用ExifTool将修改后的IPTC参数应用于相应的图片。(1/10) |