executando mais de um comando de linha de comando dentro do loop

0

Eu tenho uma pasta contendo imagens e quero determinar o método de compactação usado. Então eu iria percorrer a pasta e fazer uma compressão grep como este

e note que instalei o grep para windows

for %f in (*.jpg) do  identify -verbose "%f" | grep Compression >> info.txt

No entanto, eu preciso escrever o nome do arquivo e a técnica de compressão usada para que eu modifique o comando acima

for %f in (*.jpg) do  identify -verbose "%f" | grep Compression & echo "%f" & echo: >> info.txt

Mas o problema é que eu recebo um arquivo txt em branco. Alguém poderia me ajudar.

    
por klijo 07.04.2012 / 18:46

1 resposta

2

O redirecionamento sempre se aplica a um único comando - echo: >> info.txt , neste caso - não a toda a linha de comando.

Você precisará agrupar comandos usando ( ) :

for %f in (*.jpg) do (identify -verbose "%~f" | grep Compression & echo "%~f" & echo:) >> info.txt

ou de uma forma mais legível,

for %f in (*.jpg) do (
    identify -verbose "%~f" | grep Compression
    echo "%~f"
    echo:
) >> info.txt
    
por 08.04.2012 / 00:44