windows批处理批量重命名文件靠for和ren命令实现:①简单替换扩展名(如.txt→.log);②递归+确认式重命名(支持子目录);③按序号重命名(如图001.jpg);④加前缀/后缀;⑤务必先用echo预览再执行。
windows 中用批处理脚本批量重命名文件夹内特定文件,核心是精准定位 + 安全执行。不需要装软件,靠系统自带的 for 和 ren 命令就能完成,关键在于写对路径、通配符和变量表达式。
只改当前目录下指定类型文件(比如所有 .txt)
适合简单统一替换扩展名或加后缀。操作轻量,兼容 Windows 7 到 11:
- 在目标文件夹空白处按住 Shift + 右键 → 选“在此处打开 PowerShell 窗口”或“在此处打开命令窗口”
- 输入
notepad rename.bat回车,新建记事本 - 粘贴这行(以把
.txt全改成.log为例):for %f in (*.txt) do ren "%f" "%~nf.log" - 保存关闭,回到窗口直接运行
rename.bat
说明:%~nf 表示去掉原扩展名的纯文件名,.log 是新后缀,不会影响文件名主体。
带确认+递归处理子文件夹(更稳妥)
当文件分散在多层子目录,且怕误操作时,用这个增强版脚本:
- 新建文本文件,重命名为
safe_rename.bat - 右键编辑,粘贴以下内容(可直接修改
old_ext和new_ext):@echo off<br>setlocal enabledelayedexpansion<br>if "%~1"=="" (echo 请拖入目标文件夹路径 & pause & exit /b)<br>cd /d "%~1"<br>set "old_ext=.bak"<br>set "new_ext=.backup"<br>echo 即将把当前目录及子目录中所有 %old_ext% 文件改为 %new_ext%<br>set /p confirm=确认执行?(y/n):<br>if /i not "%confirm%"=="y" exit /b<br>for /r %%i in (*%old_ext%) do (ren "%%i" "%%~ni%new_ext%")
- 把整个文件夹拖到该
.bat图标上松开,自动执行
它会逐个遍历子目录,显示提示并等你敲 y 才继续,避免手滑点错。
按序号批量重命名(如图001.jpg、图002.jpg)
适用于整理扫描件、截图、照片等需要编号的场景:
- 新建
number_rename.bat,编辑内容:@echo off<br>set a=100<br>setlocal EnableDelayedExpansion<br>for %%n in (*.jpg) do (<br> set /A a+=1<br> ren "%%n" "图!a!.jpg"<br>)
- 保存后双击运行
-
set a=100表示从 101 开始编号;!a!是延迟扩展写法,确保序号正确累加
注意:只处理当前目录下的 .jpg,其他格式改扩展名即可(如 *.pdf)。
加前缀或后缀(如“备份_文件名.txt”)
不改动原名结构,只增补固定文字:
- 脚本示例(给所有 .docx 加前缀):
@echo off<br>setlocal enabledelayedexpansion<br>for %%f in (*.docx) do (<br> set "name=%%f"<br> ren "%%f" "备份_!name!"<br>)
- 想加后缀就把
"备份_!name!"改成"!name:~0,-5!_final.docx"(:~0,-5去掉最后5位“.docx”,再拼新后缀) - 务必先测试:可先把
ren换成echo预览效果,确认无误再正式运行
比如 echo ren "%%f" "备份_!name!",运行后只打印要执行的命令,不真正改名。











