批处理重命名,求助!

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:33:20
我要把文件下的xx_1,xx_2,xx_3……重命名为xx-001,xx-002,xx-003……
请大虾帮帮忙!

@echo off
setlocal enabledelayedexpansion
set n=1
for /f "tokens=*" %%i in ('dir /A-D /b') do (
set var=%%~ni
set var1=!var:_=-!
set var2=!var1:~3!
set/a var4=!var2!+0
set var3=!var1:~0,3!
if !var2! LSS 10 (ren %%i !var3!00!var4!%%~xi)
if !var2! LSS 100 (ren %%i !var3!0!var4!%%~xi)
if !var2! LSS 1000 (ren %%i !var3!!var4!%%~xi)
)

::测试可用

@echo off
for /f "delims=" %%a in ('dir /a/b/s xx_*')do (
for /f "tokens=2 delims=_" %%b in ("%%~na")do (
call:name %%b "%%a"
))
exit /b
:name
set "m=000%1"&set "m=%m:~-3%"&ren %2 xx_%m%%~x2

@echo off
setlocal enabledelayedexpansion
set n=1
for /f "delims=" %%i in ('dir /ad /b') do (
ren "%%i" a!n!
set /a n+=1
)
pause

又是七月七