Usando imagemagick para identificar todos los archivos en múltiples subcarpetas

Usando imagemagick para identificar todos los archivos en múltiples subcarpetas

quiero correrImagenMagiacon la identifyopción de escanear todas las imágenes en varias carpetas a la vez.

Debería ejecutarse de manera similar a la sintaxis siguiente, pero quiero registrarlo todo en el mismo archivo de registro y, si es posible, también me gustaría crear un archivo por lotes para esto.

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

Respuesta1

Podrías simplemente ejecutar unPARA /Fbucle con undireccióncomando para obtener la ruta explícita completa a cada archivo desde el directorio de origen (D:\Images) y recorrerla de forma recursiva.

Básicamente, esto pasa cada ruta completa y explícita y nombre de archivo al magickcomando uno por uno y luego los agregará al archivo de registro para su posterior revisión.

A continuación se proporcionan recursos adicionales y un comando de ejemplo con la sintaxis aplicable que utiliza todo esto para que lo utilice en consecuencia. Este debería ser un buen punto de partida para usted.


Ejemplo de línea de comando

NOTA: Puede reemplazar la parte de D\Images\*.*"como D\Images\*.jpg"o cualquier extensión de archivo para enumerar solo esas extensiones de archivo en particular y también puede cambiarla a F:\OtherFolder\*.png"o lo que sea según sea necesario, de modo que se pueda especificar una ruta de carpeta diferente y/o extensiones de archivo en esa parte del ejemplo. proporcionado a continuación.

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

Ejemplo de secuencia de comandos por lotes

NOTA: Creé este script para que pueda configurar las variables según sus necesidades fácilmente y adaptarlas en consecuencia por ejecución.

@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

Recursos adicionales

Respuesta2

La siguiente línea (funciona en Linux, pero probablemente también en Windows 10 usando Windows PowerShell) le brinda una lista recursiva de todas las imágenes jpg en los directorios subyacentes y sus detalles:

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

información relacionada