У меня есть папка с изображениями, и я хочу определить используемый метод сжатия. Так что я бы перебрать папку и сделать сжатие grep, как это

и обратите внимание, я установил grep для Windows

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

Однако мне нужно написать имя файла и используемую технику сжатия, поэтому я изменил приведенную выше команду

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

Но проблема в том, что я получаю пустой текстовый файл. Может ли кто-то, пожалуйста, помочь мне.

1 ответ1

2

Перенаправление всегда применяется к одной команде - echo: >> info.txt , в данном случае - не ко всей командной строке.

Вам нужно сгруппировать команды, используя ( ) :

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

или в более читаемой форме,

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .