You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CMD中遍历子文件夹批量将文件重命名为.pdf格式

解决CMD递归批量重命名所有子目录文件为PDF格式的问题

首先要明确:ren(rename)命令本身没有/r参数,你之前报错就是因为用错了参数——/r是for命令的递归遍历参数,得配合for来实现批量遍历子目录的需求。

直接在CMD窗口执行的命令

如果你想在上级目录直接执行,递归处理所有子目录的文件,用这条命令:

for /r "上级目录的绝对路径" %f in (*) do ren "%f" "%~nf.pdf"
  • 把"上级目录的绝对路径"替换成实际路径,比如"D:\Documents\ParentFolder";如果上级目录是当前目录的父目录,也可以用..代替路径,写成for /r .. %f in (*) do ren "%f" "%~nf.pdf"
  • %f:代表遍历到的每个文件(注意:如果是在批处理脚本里,要把%f改成%%f,批处理里变量需要双百分号)
  • %~nf:提取文件的纯文件名(不含扩展名),再加上.pdf后缀完成重命名

避免重复给PDF文件加后缀

如果目录里已经有.pdf文件,上面的命令会把它们改成文件名.pdf.pdf,想要跳过已有的PDF文件,用这条带判断的命令:

for /r "上级目录路径" %f in (*) do if /i not "%~xf"==".pdf" ren "%f" "%~nf.pdf"
  • if /i not "%~xf"==".pdf":忽略大小写判断文件扩展名,如果不是.pdf才执行重命名

写成批处理脚本的版本

如果需要反复执行,把命令存成.bat文件更方便,比如创建rename_to_pdf.bat,内容如下:

@echo off
:: 替换成你的上级目录路径
set "target_dir=D:\Documents\ParentFolder"
for /r "%target_dir%" %%f in (*) do (
    if /i not "%%~xf"==".pdf" (
        ren "%%f" "%%~nf.pdf"
    )
)
echo 所有符合条件的文件已完成重命名
pause
  • 修改target_dir的值为你的上级目录路径即可,运行脚本就会自动递归处理所有子目录

内容的提问来源于stack exchange,提问作者Matthew M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:15:36