Usando o imagemagick para identificar todos os arquivos em várias subpastas

Usando o imagemagick para identificar todos os arquivos em várias subpastas

Eu quero correrImagemMagickcom a identifyopção de digitalizar todas as imagens em várias pastas ao mesmo tempo.

Ele deve ser executado de forma semelhante à sintaxe abaixo, mas quero registrar tudo no mesmo arquivo de log e gostaria de criar um arquivo em lote para isso, se possível também.

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

Responder1

Você poderia simplesmente executar umPARA /Floop com umDIRcomando para obter o caminho explícito completo para cada arquivo do diretório de origem (D:\Images) e percorrê-lo recursivamente.

Basicamente, isso passa cada caminho explícito completo e nome de arquivo para o magickcomando, um por um, e então você os anexará ao arquivo de log para revisão posterior.

Recursos adicionais e um exemplo de comando com sintaxe aplicável usando tudo isso são fornecidos abaixo para você utilizar adequadamente. Este deve ser um bom ponto de partida para você.


Exemplo de linha de comando

OBSERVAÇÃO: Você pode substituir a parte de D\Images\*.*"como D\Images\*.jpg"ou qualquer extensão de arquivo para listar apenas essas extensões de arquivo específicas e também pode alterá-la para F:\OtherFolder\*.png"ou o que for necessário, para que um caminho de pasta e/ou extensões de arquivo diferentes possam ser especificados nessa parte do exemplo. Fornecido abaixo.

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

Exemplo de script em lote

OBSERVAÇÃO: Eu criei esse script para que você possa definir facilmente as variáveis ​​de acordo com suas necessidades para acomodá-las adequadamente por execução.

@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 adicionais

Responder2

O liner a seguir (funciona no Linux, mas provavelmente também no Windows 10 usando o Windows PowerShell) fornece uma lista recursiva de todas as imagens jpg nos diretórios subjacentes e seus detalhes:

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

informação relacionada