如何将当前文件夹名称作为替换值写入批量重命名批处理脚本?
解决方法:自动获取当前目录名替换模板文件名
直接用以下修改后的批处理脚本即可实现需求,同时优化了重复代码:
@echo off Setlocal enabledelayedexpansion :: 获取当前目录名并存入Replace变量,替代原手动设置的RepName for %%d in (.) do set "Replace=%%~nd" Set "Pattern=XXxxxxxxXX" :: 合并所有需要重命名的文件格式,减少重复代码 For %%a in (*.docx *.xlsx *.xlsm *.doc) Do ( Set "File=%%~a" Ren "%%a" "!File:%Pattern%=%Replace%!" ) Pause&Exit
关键修改说明:
- 自动获取目录名:把原脚本中仅打印目录名的
for %%* in (.) do @echo %%~n*改成赋值语句for %%d in (.) do set "Replace=%%~nd",其中%%~nd表示提取当前目录(.)的名称(不含路径),直接存入Replace变量,无需手动设置。 - 合并重复循环:将原四个分别处理不同格式的for循环合并为一个,用空格分隔多个文件扩展名,简化代码结构,避免冗余。
- 保留原脚本的延迟扩展(
enabledelayedexpansion),确保变量替换在循环内正常生效。
内容的提问来源于stack exchange,提问作者SEsco25
相关产品推荐
相关产品推荐

