求bat代码,批量按照文件夹名字并顺序命名文件夹中最底层文件

求bat代码,批量按照文件夹名字并顺序命名文件夹中最底层文件

比如aaa文件夹下面有dd文件夹,dd文件夹里面有ff文件夹,......gg文件夹里面有100个文件1、2、3、4、5、.....121
bbb文件夹里面有ee文件夹。ee文件夹里面有34个文件1、2、3、......34
.
.
.
.

最后生成的结果是aaa文件夹最底层的文件夹中文件命名为aaa001、aaa002....aaa100
bbb文件夹最底层的文件夹中文件命名为bbb001、bbb002、.......bbb034

.
.
.
.

第1个回答  2012-11-25
重要说明:
1.文件扩展名需要提前设置(例:set ext=.txt),请按需要改动。
2.如果文件名或路径带空格可能会出错,(如有需要再提)
3.本程序会搜索所在目录下所有 文件夹 最底层文件夹,以及计算其中文件个数。
4.并按要求重新命名所有文件。请测试后使用。
@echo off&setlocal enabledelayedexpansion
set ext=.txt
for /f "tokens=*" %%i in ('dir /ad /b ') do (set /a n+=1
set D!n!=%%i
call :sub1 %%D!n!%%\ !n!
call :sub2 %%DF!n!%% %%D!n!%%)
pause>nul&exit
:sub1
for /r "%1" %%m in (.) do (set DF%2=%%m)
goto :eof
:sub2
set DD=%1
set DD=%DD:.=%
set s=10000
set t=0
for /r "%DD%" %%m in (*) do (set /a s+=1)
for /l %%i in (10001,1,!s!) do (
set /a t+=1
set SS=%%i
set ss=!ss:~2,3!
ren "%DD%!t!%ext%" "%2!ss!%ext%" 1>nul 2>nul)goto :eof本回答被提问者采纳
相似回答