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

[文件操作] 批处理如何提取文件夹名中的特定字符串并对该文件夹里的文件按要求重命名

本帖最后由 pcl_test 于 2016-11-9 18:09 编辑

我有一批这样的文件要整理..如下:

■■201207■[Binbogamiga 穷神]___08
[Airota][Campione!][07][848x480][x264_AAC][GB].mp4
[CASO][Binbogamiga!][01][GB][720x480].rmvb
[CASO][Binbogamiga!][05][GB][720x480].mp4
[CASO][Binbogamiga!][06][GB][720x480].mp4

■■201207■[Campione 弑神者]___03
[DMG][Campione!][01][704x396][BIG5].rmvb
[strsub][Campione!][02][GB][1280×720].mp4
【DA同音字幕組】【Campione!_弑神者】【03】【mp4】【1280X720】【big5】【繁體】.mp4

■■201207■[chitose Get You! 千岁]___09
[A.I.R.nesSub][Chitose_Get_You!][04][TVRIP][720p].chs.ass
[A.I.R.nesSub][Chitose_Get_You!][04][TVRIP][720p].mp4
[Airota][Chitose_Get_You!!][05][1280x720][x264_AAC][BIG5].mp4
[Airota][Chitose_Get_You!!][06][1280x720].mp4
[Airota][Chitose_Get_You!!][06][1280x720][x264_AAC][BIG5].mp4

有■■的是文件夹..下面的几行是比较乱的文件名..求助这个批处理..有没有这样的功能:

1.判断或者说是识别一个文件名中的某一部分的能力??
2.还有对比两个文件的大小的能力??

如果可以的话..我想要的处理效果是:

1.文件夹内文件..只保留"[01]".."[02]".."[03]".."[04]"..等等..这种前后中括号里面是数字的..数字有可能是2位..有可能是3位..只保留中括号加数字..把其它的都删掉..扩展名不变~
2.如果有同样的文件..比如说最终结果有两个"[01]"的话..把其它的同名但是容量较小的文件在方括号后面加上一个序号..但是"ASS扩展名的文件除外"~
3.提出文件夹名中的"[??????]"这个部分..加在文件名前面..

比如第一个文件夹的结果就是:

■■201207■[Binbogamiga 穷神]___08
[Binbogamiga 穷神][07].mp4
[Binbogamiga 穷神][01].rmvb
[Binbogamiga 穷神][05].mp4
[Binbogamiga 穷神][06].mp4

求助哪位大大帮忙解决这个机械的劳动吧..

论坛不常上..有兴趣的大在麻烦加一个QQ:193004..先谢谢了!

脑袋大了,好复杂。

TOP

本帖最后由 batman 于 2012-9-27 20:13 编辑

头痛的特殊字符。。。
同时楼主提到的“但是"ASS扩展名的文件除外"~”不明白是什么意思,暂未作处理
请自行测试再使用
  1. @echo off
  2. for /d %%a in (*) do (
  3.   for /f "tokens=2 delims=[]" %%i in ("%%~na") do (
  4.     for /f "delims=" %%b in ('dir /b "%%a"') do (
  5.       set "str=%%b"
  6.       setlocal enabledelayedexpansion
  7.    if exist $ for /f "tokens=1,2 delims==" %%b in ($) do set /a %%b=%%c
  8.       for /f "tokens=3 delims=[]" %%c in ("!str!") do set "name=[%%i][%%c]"
  9.       set "n=!name!"&set "n=!name: =!"
  10.       for /f "delims=" %%c in ("!n!") do (
  11.         set /a %%c%%~xb+=1&echo %%c%%~xb=!%%c%%~xb!>>$
  12.         if !%%c%%~xb! equ 1 (
  13.           ren "%%a\!str!" "!name!%%~xb"
  14.           ) else (
  15.           ren "%%a\!str!" "!name:~,-1!_!%%c%%~xb!]%%~xb"
  16.          )
  17.        )
  18.        endlocal
  19.      )
  20.  )
  21.   del /q $ 2>nul
  22. )
  23. echo 搞定!&pause>nul
复制代码
***共同提高***

TOP

PS:楼主标题违规,发错版块,主题没有分类,本人已修改过来,请下次发帖时注意,本次且不做处罚,下不为例。
***共同提高***

TOP

返回列表