如何批量更改子文件夹中的文件扩展名

Jai*_*ell 9 cmd batch-file renaming

我是命令提示符的新手,并且从1天前才开始使用它.

例如C:\Users\Administrator\Desktop\Images,我在一个位置有一个文件夹,在该文件夹内有大约650个子文件夹,每个子文件夹包含大约20个图像,混合了JPG和PNG.我正在寻找CMD的命令行,它将遍历所有子文件夹并将每个.png文件更改为.jpg文件.

我做了一些研究并找到了一些信息,但是很难理解,我仍然无法做到.我想保留文件名,但是将每个文件扩展名从a更改.png为a .jpg.

据我所知,对于1个文件夹,该行就像ren *.png *.jpg.但是,这不适用于子文件夹的更改.

Rei*_*eek 14

如果我正确理解您只想将文件重命名.png.jpg,而不是转换它们,则可以使用以下批处理代码:

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

更新:我在这里找到了一个更好的解决方案,你可以从命令行直接运行(如果在批处理文件中使用它%%f,%f则使用它):

FOR /R %f IN (*.png) DO REN "%f" *.jpg
Run Code Online (Sandbox Code Playgroud)

请注意,上面将处理当前目录及其子目录.如有必要,您可以指定任意目录作为根,如下所示:

FOR /R "D:\path\to\PNGs" %f IN (*.png) DO REN "%f" *.jpg
Run Code Online (Sandbox Code Playgroud)