10

コマンドプロンプトは初めてで、1日前に使い始めました。

たとえばC:\Users\Administrator\Desktop\Images、ある場所にフォルダーがあり、そのフォルダー内には約 650 のサブフォルダーがあり、それぞれに約 20 個の画像、JPG と PNG が混在しています。.pngすべてのサブフォルダーを通過し、各ファイルをファイルに変更する CMD のコマンドラインを探してい.jpgます。

私は少し調査を行い、いくつかの情報を見つけましたが、追跡して理解するのは非常に難しく、まだそれを行うことができません. ファイル名を保持したいのですが、各ファイル拡張子を a.pngから.jpg.

1つのフォルダーの場合、行は次のようになることを理解していますren *.png *.jpg。ただし、これはサブフォルダーに変更を適用しません。

4

1 に答える 1

18

ファイルの名前をからに変更するだけで、変換しないことを正しく理解している場合は.png.jpg次のバッチコードを使用できます。

@ECHO OFF
PUSHD .
FOR /R %%d IN (.) DO (
    cd "%%d"
    IF EXIST *.png (
       REN *.png *.jpg
    )
)
POPD

更新:コマンドラインから直接実行できるより良い解決策をここで見つけました(バッチファイル内でこれを使用する場合%%fの代わりに使用してください):%f

FOR /R %f IN (*.png) DO REN "%f" *.jpg

上記は現在のディレクトリとそのサブディレクトリを処理することに注意してください。必要に応じて、次のように任意のディレクトリをルートとして指定できます。

FOR /R "D:\path\to\PNGs" %f IN (*.png) DO REN "%f" *.jpg
于 2013-03-10T01:05:28.607 に答える