Java EXIFTool JSON到EXIF批处理
我有>400个JPG文件和一个JSON文件,每个文件都包含图像标记、描述和标题。我找到了这个命令Java EXIFTool JSON到EXIF批处理,java,json,batch-file,exif,exiftool,Java,Json,Batch File,Exif,Exiftool,我有>400个JPG文件和一个JSON文件,每个文件都包含图像标记、描述和标题。我找到了这个命令 exiftool -json=picture.json picture.jpg 但我不想对每个文件都运行此操作。 如何对包含JPGs和JSON的文件夹运行此命令,或者是否有其他方法可以批处理这些文件? 每个JSON文件都与JPG对应文件具有相同的名称,因此很容易识别哪些文件彼此匹配。假设您的JPG和JSON具有相同的文件名,但具有不同的extesion(例如picture001.JPG具有关联的p
exiftool -json=picture.json picture.jpg
但我不想对每个文件都运行此操作。如何对包含JPGs和JSON的文件夹运行此命令,或者是否有其他方法可以批处理这些文件?
每个JSON文件都与JPG对应文件具有相同的名称,因此很容易识别哪些文件彼此匹配。假设您的JPG和JSON具有相同的文件名,但具有不同的extesion(例如picture001.JPG具有关联的picture001.JSON等),则批处理for循环可能会起作用。 假设您已经将
cd
-ed放入文件夹中,并且文件没有嵌套在文件夹中,类似的方法应该可以工作
( for jpg in *.jpg; do exiftool -json=${jpg/\.jpg/.json} $jpg; done )
请注意,这没有经过测试。我建议你先复制一份文件夹,并在那里进行测试,以确保不会不可逆转地损坏它们
我还注意到您正在使用java标记。不久前,我不得不用Java处理EXIF数据,我使用了。如果您想使用自己的小java命令行工具,您应该能够使用java的IO类遍历目录和文件,并使用JHeader库修改EXIF数据。谢谢!我尝试了这个,但是遇到了一个错误,这个文本框中没有足够的空间让我复制粘贴它,但是你没有提到windows。我的解决方案是bash,您可以在unix系统上运行。在Windows上,您需要类似或的东西。请注意,您可以按原样运行脚本,但前面没有exiftool.exe。目前我还不能做DOS/批处理版本,但同样的原则也适用。语法将不同。好的,对不起,我忘了说我在Windows上!谢谢,我会下载cygwin,我相信我以前用过。cygwin不适合我,所以我启动了一个Ubuntu虚拟机,安装了exiftool并运行了您的命令,但它会为每个文件返回这三行:第1行:“imagename.json中没有SourceFile条目”第2行:“导入的json数据库中没有SourceFile‘imagename.jpg’”第3行:(绝对路径:'/media/FlickrPics/imagename.jpg')”听起来路径不是很快。我做了一个快速的虚拟测试:添加了一堆json和jpg文件
ls-l总计0-rw-r--r--1名乔治普洛芬扎员工0 10 8月14日:58 pic001.jpg-rw-r--r--1名乔治普洛芬扎员工0 10 8月14日:58 pic001.json-rw-r--r--1名乔治普洛芬扎员工0 10 8月14日:59 pic002.jpg-rw-r--r--1名乔治普洛芬扎员工0 10 Aug 14:58 pic002.json-rw-r--r--1 georgeprofenza staff 0 10 Aug 14:59 pic003.jpg-rw-r--r--1 georgeprofenza staff 0 10 Aug 14:59 pic003.json
然后运行一个稍微修改过的脚本版本,该脚本只将数据打印到提示符。。。