在 for 循环内运行多个命令行命令

在 for 循环内运行多个命令行命令

我有一个包含图像的文件夹,我想确定它使用的压缩方法。所以我将循环遍历该文件夹并像这样执行 grep Compression

请注意我已经为 Windows 安装了 grep

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

但问题是我得到的是一个空白的 txt 文件。有人能帮帮我吗?

答案1

重定向始终适用于单个命令 –echo: >> info.txt在本例中 – 而不是整个命令行。

您将需要使用( )'s 对命令进行分组:

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

相关内容