使用 imagemagick 识别多个子文件夹中的所有文件

使用 imagemagick 识别多个子文件夹中的所有文件

我想跑图像魔术师可以identify选择一次扫描多个文件夹中的所有图像。

它应该以类似于下面的语法运行,但我想将其全部记录到同一个日志文件中,如果可能的话,我也想为此创建一个批处理文件。

magick identify -verbose "D:\Images" >log.txt 2>&1

答案1

你可以运行为/F循环目录命令从源目录(D:\Images)获取每个文件的完整显式路径并递归遍历它。

这实际上是将每个完整的显式路径和文件名magick逐一传递给命令,然后将它们附加到日志文件以供稍后查看。

下面提供了其他资源和示例命令,以及使用所有这些内容的适用语法,供您使用。这对您来说应该是一个很好的起点。


命令行示例

笔记: D\Images\*.*"您可以替换为或任何文件扩展名的部分 D\Images\*.jpg"以仅列出那些特定的文件扩展名,并且您也可以F:\OtherFolder\*.png"根据需要将其更改为或任何内容,以便可以在下面提供的示例部分中指定不同的文件夹路径和/或文件扩展名。

FOR /F "DELIMS=" %A IN ('DIR /A-D /S /B "D:\Images\*.*"') DO magick identify -verbose "%~A">>D:\logfile.txt

批处理脚本示例

笔记: 我编写了这个脚本,以便您可以轻松地根据需要设置变量,以便在每次运行中相应地进行适应。

@ECHO ON

SET Source=D:\Images
SET Ext=*.jpg
SET LogFile=D:\logfile.txt

FOR /F "DELIMS=" %%A IN ('DIR /A-D /S /B "%Source%\%Ext%"') DO magick identify -verbose "%%~A">>"%LogFile%"
GOTO EOF

更多资源

答案2

以下一行代码(适用于 Linux,但可能也适用于使用 Windows PowerShell 的 Windows 10)为您提供了底层目录中所有 jpg 图像及其详细信息的递归列表:

find . -name "*.jpg" -exec identify {} \;

相关内容