返回列表 发帖
@echo off&setlocal enabledelayedexpansion
set "dn=10000"
for /d %%a in (2012-永久-*) do (
    pushd "%%a"
    set/a dn+=1,fn=10000
    for %%b in (2012-永久-*.jpeg) do (
        set/a fn+=1
        ren "%%b" "J027-2012-永久-!dn:~-4!-!fn:~-4!.jpeg"
    )
    popd
    ren "%%a" "J027-2012-永久-!dn:~-4!"   
)COPY
自己复制几个文件夹测试一下。
1

评分人数

初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 5# playinthesky
只适合你上面举例的文件及目录名:
@echo off&setlocal enabledelayedexpansion
for /d %%a in (2012-永久-*) do (
    pushd "%%a"
    for /f "tokens=3 delims=-_" %%i in ("%%a") do set "dn=0000%%i"
    for %%b in (2012-永久-*.jpeg) do (
        for /f "tokens=3 delims=e_" %%i in ("%%b") do set "fn=0000%%i"
        ren "%%b" "J027-2012-永久-!dn:~-4!-!fn:~-4!.jpeg"
    )
    popd
    ren "%%a" "J027-2012-永久-!dn:~-4!"   
)COPY
上面的写法,改名的文件名前缀部分与目录名相同。
自己测试一下。
有问题举一两个表述清晰的例子即可,不用发那么多图.
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

返回列表