10

我对命令提示符很陌生,直到 1 天前才开始使用它。

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

我做了一些研究并找到了一些信息,但是很难理解和理解,我仍然无法做到。我想保留文件名,但是将每个文件扩展名从 a 更改.png为 a .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 回答