如何在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
相关产品推荐
相关产品推荐

