forループ内で複数のコマンドラインコマンドを実行する


0

画像を含むフォルダがあり、使用する圧縮方法を決定したい。だから私はフォルダをループし、このようなgrep圧縮を行います

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ファイルを取得することです。誰かが私を助けてくれるでしょう。

回答:


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.