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

[文件操作] BAT怎样把文件夹和文件夹下的文件都更改格式重命名[略有难度有断序]?

本帖最后由 playinthesky 于 2013-12-15 18:48 编辑

原始:

文件夹格式

2012-永久-001_image
2012-永久-002_image
2012-永久-003_image
2012-永久-004_image
2012-永久-005_image
2012-永久-006_image
2012-永久-007_image

文件夹 2012-永久-001_image  下
2012-永久-001_page1_0.jpeg
2012-永久-001_page2_0.jpeg
2012-永久-001_page3_0.jpeg
2012-永久-001_page4_0.jpeg
2012-永久-001_page5_0.jpeg

文件夹 2012-永久-002_image  下
2012-永久-002_page1_0.jpeg
2012-永久-002_page2_0.jpeg
2012-永久-002_page3_0.jpeg
2012-永久-002_page4_0.jpeg

....

以及类推,有成千上万个

目标格式:

文件夹格式

J027-2012-永久-0001
J027-2012-永久-0002
J027-2012-永久-0003
J027-2012-永久-0004
J027-2012-永久-0005
J027-2012-永久-0006
J027-2012-永久-0007

文件夹 J027-2012-永久-0001  下

J027-2012-永久-0001-0001.jpeg
J027-2012-永久-0001-0002.jpeg
J027-2012-永久-0001-0003.jpeg
J027-2012-永久-0001-0004.jpeg
J027-2012-永久-0001-0005.jpeg

文件夹 J027-2012-永久-0002  下

J027-2012-永久-0002-0001.jpeg
J027-2012-永久-0002-0002.jpeg
J027-2012-永久-0002-0003.jpeg
J027-2012-永久-0002-0004.jpeg
J027-2012-永久-0002-0005.jpeg

我的思路:想将所有文件夹下的JEPG文件
  1. @echo off
  2. for /r %%i in (*.jpeg) do (
  3. echo %%i>>whole.txt
  4. move %%i %~dp0)
  5. pause
复制代码
然后重命名,重命名好之后,在用重命名文件夹的软件,批量建立我所需要格式的文件夹,然后我再
  1. @echo off
  2. for %%i in (*.jpeg) do (
  3. for /f "tokens=*" %%a in (whole.txt) do (
  4. echo %%a | findstr "%%i" && move %%i %%a))  
  5. pasue
复制代码
但是我发现效率很低下,移动的过程中,非常的慢。

能不能有高手,可以直接批处理的时候,将我上面所说的两步合成一步处理了,另外就是原始文件中文件的序列都是3位数的,但是要求均为四位且在年份之前需要加上 J027- 的标注,去除文件夹名后 _image的标注

后面各个文件夹下的文件名,也需要将_page和_0过滤,文件的名字,要把-002 从三位提升到四位变成0002,也同样要加上 J027- 的标注。所以感觉很难。

很不好意思,我又来了,我之前忘记考虑了一个情况,就是文件夹和文件夹下的文件均有断续的。这样能否解决?????

文件夹格式

2012-永久-001_image
2012-永久-002_image
2012-永久-009_image
2012-永久-010_image
2012-永久-015_image
2012-永久-017_image
2012-永久-250_image

文件夹 2012-永久-001_image  下
2012-永久-001_page1_0.jpeg
2012-永久-001_page2_0.jpeg
2012-永久-001_page7_0.jpeg
2012-永久-001_page9_0.jpeg
2012-永久-001_page10_0.jpeg

文件夹 2012-永久-002_image  下
2012-永久-002_page1_0.jpeg
2012-永久-002_page2_0.jpeg
2012-永久-002_page3_0.jpeg
2012-永久-002_page12_0.jpeg

文件夹 2012-永久-009_image  下
2012-永久-009_page1_0.jpeg
2012-永久-009_page2_0.jpeg
2012-永久-009_page6_0.jpeg
2012-永久-009_page9_0.jpeg

文件夹 2012-永久-010_image  下
2012-永久-010_page1_0.jpeg
2012-永久-010_page2_0.jpeg
2012-永久-010_page3_0.jpeg
2012-永久-010_page27_0.jpeg

文件夹 2012-永久-015_image  下
2012-永久-010_page1_0.jpeg
2012-永久-010_page12_0.jpeg
2012-永久-010_page17_0.jpeg
2012-永久-010_page29_0.jpeg

文件夹 2012-永久-017_image  下
2012-永久-002_page1_0.jpeg
2012-永久-002_page18_0.jpeg
2012-永久-002_page28_0.jpeg
2012-永久-002_page61_0.jpeg

文件夹 2012-永久-250_image  下
2012-永久-002_page1_0.jpeg
2012-永久-002_page2_0.jpeg
2012-永久-002_page99_0.jpeg
2012-永久-002_page170_0.jpeg

.......

以及类推,有成千上万个

因为有断续,所以如果用计数器补零的办法,就会照成原先的序列混乱,能否保证原先的排序情况,进行补零,先谢过各位高手了!





执行好心人的BAT处理之后



期待解决
1

评分人数

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

回复 2# xxpinqz


    好的,我试试看,谢谢高手帮助。

TOP

回复 2# xxpinqz


    可行,大赞,你真厉害!

TOP

回复 2# xxpinqz


    很不好意思,我又来了,我之前忘记考虑了一个情况,就是文件夹和文件夹下的文件均有断续的。这样能否解决?????

TOP

回复 8# PowerShell


2012-永久-001_image    ----> J027-2012-永久-0001
2012-永久-002_image    ----> J027-2012-永久-0002
2012-永久-009_image    ----> J027-2012-永久-0009  
2012-永久-010_image   
2012-永久-015_image
2012-永久-017_image
2012-永久-250_image

把2012前面加上 J027,将_image去除,但是有2001年到2012年。

TOP

返回列表