如果输入文件不是图像,则会导致 exiftool 出错

如果输入文件不是图像,则会导致 exiftool 出错

我刚刚尝试获取 csv 文件的嵌入颜色配置文件,但没有返回任何输入

$ exiftool -a -S -G0 -ColorSpace -InteropIndex -WhitePoint -PrimaryChromaticities -Gamma -ICC_Profile:all my_data.csv
$ 

并且只运行exiftool my_data.csv打印内容并且不设置错误状态代码

$ exiftool my_data.csv 
ExifTool Version Number         : 12.05
File Name                       : my_data.csv
Directory                       : .
File Size                       : 84 kB
File Modification Date/Time     : 2021:03:22 19:06:19-04:00
File Access Date/Time           : 2021:03:22 19:06:23-04:00
File Inode Change Date/Time     : 2021:03:22 19:06:19-04:00
File Permissions                : rw-rw-r--
File Type                       : CSV
File Type Extension             : csv
MIME Type                       : text/csv
MIME Encoding                   : us-ascii
Newlines                        : Unix LF
Delimiter                       : Comma
Quoting                         : Double quotes
Column Count                    : 11
Row Count                       : 241
$ echo $?
0
$ 

如果输入不是图像,我可以告诉 exiftool 出错吗?我是否必须File Type自己检查并处理它,还是让错误稍后在我的代码中发生?我不知道所有有效的图像文件类型是什么。

答案1

不编辑源代码就不行。

您可以使用以下方式排除文件类型-ext-extension) 选项,使用两个破折号而不是一个。例如,您可以添加
--ext txt --ext csv
,这样 exiftool 就不会处理带有 CSV 或 TXT 扩展名的文件。

您还可以使用-if选项检查是否MIMEType是图像
exiftool -if "$MIMEType=~/^image/" …

如果此命令在Unix / Mac下运行,请将双引号更改为单引号以避免bash解释。

相关内容