2009年5月6日星期三

根据当前目录名批量改文件名

如何根据目录名批量更改文件名(对该目录下所有子目录有效)?
如文件夹名为:东邪西毒OST
如何将此文件夹下的所有mp3文件改名为

东邪西毒OST-001.mp3
东邪西毒OST-002.mp3
东邪西毒OST-003.mp3


脚本:

@echo off & SetLocal EnableDelayedExpansion

:* 列出当前目录下包括子目录下所有要求文件
for /f "delims=" %%a in ('dir /s/b/a-d *.jpg *.bmp') do (

:* %%~dpa后的.很犀利,不加.后面的%%~nb将为空
for /f "delims=" %%b in ("%%~dpa.") do (

:* 监测是否换子目录,决定是否重新计数
if not "!_batch!"=="_%%~nb" set _batch=_%%~nb&set num=0&echo....

set /a num+=1
set nums=00!num!
set nums=!nums:~-3!
ren "%%~a" "%%~nb-!nums!%%~xa"
)
)

没有评论:

发表评论