批处理 大量文件重命名

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:05:31
就是把一个文件夹中的所有图片全部重命名,新文件名是个递增的数列。
我自己写的是:
@echo off
echo 开始改名
setlocal EnableDelayedExpansion
set /a n=0
for %%a in (*.gif) do (
set /a n=n+1
ren %%a 猴子%n%.gif
echo 显示n:%n%
)
endlocal
echo 改名完毕 共更改%n%个文件名
pause

好像变量n在循环体里是不变的,我郁闷了。
貌似是变量延迟的问题,可是我又不知道怎么用,请高手指点。

@echo off
echo 开始改名
setlocal EnableDelayedExpansion
set /a n=0
for %%a in (*.gif) do (
set /a n=n+1
ren "%%a" "猴子!n!.gif"
echo 显示n:!n!
)
echo 改名完毕 共更改%n%个文件名
pause

程序思路没错,只是开启延迟变量后,变量%a%要用!a!来表示。

恩,xp自带这个功能的,全选然后右键重命名,就好了。
你或者用totalcommnder来重命名也可以。