使用批处理脚本批量替换文件名中的点为空格以重命名文件
批量重命名:替换文件名后缀前的点为空格(批处理脚本)
刚好做过类似的需求,给你写个直接能用的批处理脚本,完美适配你的场景:
@echo off setlocal enabledelayedexpansion :: 遍历当前目录下的所有文件(排除脚本自身) for %%F in (*.*) do ( :: 跳过当前批处理文件,避免把脚本自己也重命名了 if "%%~nxF" == "%~nx0" goto nextfile :: 拆分文件名和后缀:%%~nF取文件名(不含后缀),%%~xF取后缀 set "filename=%%~nF" set "extension=%%~xF" :: 把文件名里的所有点替换成空格,这里用!是因为启用了延迟扩展 set "newname=!filename:.= !" :: 组合新文件名并执行重命名 ren "%%F" "!newname!!extension!" :nextfile ) echo 所有符合条件的文件都重命名完成啦! pause
关键细节说明:
- 延迟变量扩展:必须开启
enabledelayedexpansion,不然循环里的变量替换不会实时生效,这是批处理循环里的常见坑点 - 跳过脚本自身:加了判断逻辑,避免把批处理文件自己也改了名字,导致下次运行找不到脚本
- 引号包裹路径:所有涉及文件名的操作都用引号括起来,就算原文件名里自带空格也不会出错
如果需要递归处理子目录里的文件,只需要把for %%F in (*.*)改成for /r %%F in (*.*)即可,但要注意子目录下的所有文件都会被批量修改哦。
内容的提问来源于stack exchange,提问作者slothOnMeth
相关产品推荐
相关产品推荐

