如何用批量重命名脚本保留原扩展名且新文件名含多个点?
解决批量重命名含多点点名文件的问题
问题原因
Windows的REN命令在处理带多个点的目标文件名时,会默认把最后一个点之后的内容当作新扩展名,导致你用REN "ABC123.*" "new.filename.here.*"时,系统错误地丢弃了原文件的扩展名,直接重命名成new.filename.here。
解决方案
方法1:CMD命令行(临时执行)
直接在CMD窗口里执行以下命令,遍历所有ABC123.*开头的文件,提取原文件扩展名并拼接:
for %f in (ABC123.*) do ren "%f" "new.filename.here.%~xf"
- 其中
%~xf会自动提取当前文件的完整扩展名(包括前面的点),比如原文件是ABC123.PDF,就会拼出new.filename.here.PDF。
方法2:批处理脚本(重复使用)
如果需要多次执行,把命令写成批处理文件(后缀.bat),注意把%改成%%:
@echo off for %%f in (ABC123.*) do ren "%%f" "new.filename.here.%%~xf" pause
双击运行这个批处理文件就能完成批量重命名。
方法3:PowerShell命令
如果你习惯用PowerShell,执行以下命令更直观:
Get-ChildItem -Path "ABC123.*" | Rename-Item -NewName { "new.filename.here$($_.Extension)" }
$_.Extension会直接获取每个文件的扩展名,和新文件名拼接后得到正确结果。
内容的提问来源于stack exchange,提问作者RpTheHotrod
相关产品推荐
相关产品推荐

