标题: [文件操作] [已解决]如何将多个子文件夹里的文件以所在的文件夹名和四位递增数字的方式重命名 [打印本页]
作者: crownking1983 时间: 2015-3-25 20:40 标题: [已解决]如何将多个子文件夹里的文件以所在的文件夹名和四位递增数字的方式重命名
本帖最后由 pcl_test 于 2018-5-14 22:43 编辑
求一个简单的bat批处理命令,实现批量按文件夹名为前缀重命名文件夹内的文件。实例如下——
文件夹 AAA 里有 12589.jpg 43698.jpg 71475.jpg ……
文件夹 BBB 里有 25478.jpg 56547.jpg 94756.jpg……
文件夹 CCC 里有 648528.jpg 87456.jpg 91257.jpg……等等N个文件夹 每个文件夹里有N个无规律的图片文件
现求一个bat批处理命令,运行后变成以下效果:
文件夹 AAA 里有 AAA0001.jpg AAA0002.jpg AAA0003.jpg ……
文件夹 BBB 里有 BBB0001.jpg BBB0002.jpg BBB0003.jpg……
文件夹 CCC 里有 CCC0001.jpg CCC0002.jpg CCC0003.jpg……
统一变为以各自文件夹的文件名为前缀加上四位数字按原文件名排序重新编号重命名。
作者: pcl_test 时间: 2015-3-25 21:50
回复 1# crownking1983
AAA、BBB、CCC是否在同级目录里?
作者: terse 时间: 2015-3-25 22:11
- @echo off & setlocal enabledelayedexpansion
- for /d %%a in (*) do (
- set n=10000
- for /f "delims=" %%i in ('dir /b /a-d "%%a\*.*"') do (
- set /a n+=1
- ren "%%a\%%i" "%%a!n:~1!%%~xi"
- )
- )
- pause
复制代码
作者: crownking1983 时间: 2015-3-25 23:07
本帖最后由 crownking1983 于 2015-3-25 23:22 编辑
回复 3# terse
三楼的大哥太神了!非常感谢你!
作者: crownking1983 时间: 2015-3-29 00:09
回复 3# terse
在实际操作运用时,出现一个问题。我有一个文件夹里面的文件名是 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg 10.jpg 11.jpg 12.jpg 13.jpg 14.jpg 共14个文件,在WIN7系统下排序正常。
经过这个批处理命令处理后,1.jpg变为 0001.jpg 10.jpg变为0002.jpg 11.jpg变为0003.jpg 12.jpg变为0004.jpg 13.jpg变为0005.jpg 14.jpg变为0006.jpg 2.jpg变为0007.jpg 3.jpg变为0008.jpg ………………
完全与想要处理的结果排序不同,如果处理前要将个位数的文件手动加上0,那几千个文件夹工作量就海了去了,而且有的文件夹文件好几百个,是三位数的更乱。请问这种情况如何在批处理命令里解决?
作者: wazt741521 时间: 2018-5-2 14:29
回复 5# crownking1983
推荐Better file rename可批量加0
作者: tigerpower 时间: 2018-5-2 19:35
5楼和1楼的是两个不同的问题。
数字文件名加前导零,是个常见问题,可用powershell- powershell -c "ls *.jpg|ren -new {$_.Name.PadLeft(8,'0')}"
复制代码
作者: fashionben 时间: 2018-5-14 21:57
哈哈哈。又有人碰到和我一样到问题。猿粪
作者: fashionben 时间: 2018-5-14 22:08
贴出以前从大神求得代码
看看有何不同?
@echo off & setlocal enabledelayedexpansion
pushd "D:\Test\"
for /d %%a in (*) do (
set n=1000
for /f "delims=" %%b in ('dir /a-d /b /s "%%a\*.jpg"') do (
set /a n+=1 & move "%%b" "%%a\%%a_!n:~1!%%~xb"
)
)
pause
作者: fashionben 时间: 2018-5-14 22:27
5楼和1楼的是两个不同的问题。
数字文件名加前导零,是个常见问题,可用powershell
tigerpower 发表于 2018-5-2 19:35
请问, 如何批量给所有的文件夹里的文件批量+前导零?
文件夹A 文件夹B 文件夹C.....文件夹XXX
这些文件夹全部在同一个目录下
作者: tigerpower 时间: 2018-5-16 06:20
回复 10# fashionben - powershell -c "ls -R -file|ren -new {$_.Name.PadLeft($_.Name.Length+1,'0')}"
复制代码
作者: grace_11 时间: 2018-6-15 14:15
回复 5# crownking1983
请问下这个问题解决了吗?是怎么处理的?麻烦分享下
作者: luckcsz 时间: 2018-7-16 11:30
本帖最后由 luckcsz 于 2018-7-16 12:11 编辑
回复 3# terse
请问下有多层文件夹下及文件哪里需要修改~!
作者: a934990825 时间: 2019-1-26 09:54
如何不加所在文件夹名呢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |