【bat】批量修改文件名脚本
程序员文章站
2022-07-12 23:49:39
...
有人托我写个批量修改文件名的脚本,之前没有写过bat,现学现卖,在此记录一下。
具体代码如下:
rem 关闭调试输出,开启延迟变量
@echo off&setlocal enabledelayedexpansion
rem 读取输入的前缀
set/p a1=请输入想要添加的前缀:
rem 遍历当前目录下的所有文件夹
for /f "delims=" %%a in ('dir /b /a:d') do (
set n=%%a
rem 截取前面四个字符
set n=!n:~0,4!
echo 将%%a转成%a1%!n!
rem 重命名文件夹,添加指定前缀
ren "%%a" "%a1%!n!"
)
pause
遇到的几个坑:
-
不要随便加空格。这点和其他语言不太一样,如写成
set n = %%a
,很可能出现意想不到的问题。 - for循环后面的括号里面算一句代码,所以循环体中定义的变量无法修改。开始写成
set n=%n:~0,4%
,发现始终没起作用。解决办法是开启(enabledelayedexpansion
)并使用延迟变量(如!a!
)。