[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]如何将多个子文件夹里的文件以所在的文件夹名和四位递增数字的方式重命名

本帖最后由 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……
统一变为以各自文件夹的文件名为前缀加上四位数字按原文件名排序重新编号重命名。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# crownking1983
AAA、BBB、CCC是否在同级目录里?

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. for /d %%a in (*) do (
  3.     set n=10000
  4.     for /f "delims=" %%i in ('dir /b /a-d "%%a\*.*"') do (
  5.         set /a n+=1
  6.         ren "%%a\%%i" "%%a!n:~1!%%~xi"
  7.     )
  8. )
  9. pause
复制代码
1

评分人数

TOP

本帖最后由 crownking1983 于 2015-3-25 23:22 编辑

回复 3# terse


    三楼的大哥太神了!非常感谢你!

TOP

回复 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,那几千个文件夹工作量就海了去了,而且有的文件夹文件好几百个,是三位数的更乱。请问这种情况如何在批处理命令里解决?

TOP

回复 5# crownking1983


   推荐Better file rename可批量加0

TOP

5楼和1楼的是两个不同的问题。
数字文件名加前导零,是个常见问题,可用powershell
  1. powershell -c "ls *.jpg|ren -new {$_.Name.PadLeft(8,'0')}"
复制代码

TOP

哈哈哈。又有人碰到和我一样到问题。猿粪

TOP

贴出以前从大神求得代码
看看有何不同?

@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

TOP

5楼和1楼的是两个不同的问题。
数字文件名加前导零,是个常见问题,可用powershell
tigerpower 发表于 2018-5-2 19:35



请问, 如何批量给所有的文件夹里的文件批量+前导零?
文件夹A  文件夹B 文件夹C.....文件夹XXX
这些文件夹全部在同一个目录下

TOP

回复 10# fashionben
  1. powershell -c "ls -R -file|ren -new {$_.Name.PadLeft($_.Name.Length+1,'0')}"
复制代码

TOP

回复 5# crownking1983


    请问下这个问题解决了吗?是怎么处理的?麻烦分享下

TOP

本帖最后由 luckcsz 于 2018-7-16 12:11 编辑

回复 3# terse

请问下有多层文件夹下及文件哪里需要修改~!

TOP

如何不加所在文件夹名呢

TOP

返回列表