本帖最后由 qixiaobin0715 于 2023-2-23 15:34 编辑
根据你在顶楼及回复中的信息,总结一下:
1.在某个文件夹(比如abc)下有多个子文件夹;
2.每个子文件夹中有若干图片文件;
3.每个文件夹下图片文件是以1,2,3...来命名的;
4.不知道到底有多少个文件夹和文件;
5.你的需求是,将所有文件合并到文件夹abc下,按照1,2,3...的形式累加重新命名,重命名时各子文件夹中文件均按原有数字顺序排列。
如果是以上所说的情况的话,不需要每个文件夹都要进行一次处理,可以将所有子文件夹的文件一并处理,即将所有图片文件均移动到当前文件夹abc中并进行重命名操作。
运行下面代码需注意:
1.假设各子文件夹在文件夹abc中;
2.各子文件夹中只有图片文件,并且其中的文件名是严格按照1,2,3...的顺序命名,对于数字来说中间不得有空缺;
3.批处理文件要放在主文件夹abc中,不要放在子文件夹下;
4.批处理文件保存为ANSI编码- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /ad') do (
- pushd "%%i"
- for /f "delims=" %%j in ('dir /b /a-d *.jpg^|find /c ') do max=%%j
- for /l %%k in (1,1,!max!) do (
- set /a n+=1
- move "%%k.jpg" "..\!n!.jpg">nul 2>nul
- )
- popd
- rd "%%i"
- )
- pause
复制代码 未经测试,运行代码前请备份好源文件。 |