[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 taofan712 于 2017-6-23 16:34 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.avi) do (
  4.     set "fn=%%~a"
  5.     for /f "tokens=1,3 delims= " %%b in ("%%~a") do (
  6.         for /f "tokens=1,2 delims=第章节 " %%d in ("%%b%%c") do (
  7.             set tmpstr_d=%%dfedcba9876543210&set/a len_d=0x!tmpstr_d:~15,1!
  8.             set tmpstr_e=%%efedcba9876543210&set/a len_e=0x!tmpstr_e:~15,1!
  9.             call :change %%d !len_d! ret_d
  10.             call :change %%e !len_e! ret_e
  11.             call set fnew=%%fn:第%%d章=第!ret_d!章%%
  12.             call set fnew=%%fnew:第%%e节=第!ret_e!节%%
  13.             ren "%%~a" "!fnew!"
  14.         )
  15.     )
  16. )
  17. echo;处理完毕&pause>nul&exit /b
  18. :change
  19. set num=%1
  20. set n=1
  21. for %%i in (一 二 三 四 五 六 七 八 九) do (
  22.     call set num=%%num:%%i=!n!%%
  23.     set /a n+=1
  24. )
  25. if %2 equ 1 set num=%num:十=10%
  26. if %2 equ 2 (
  27.     set lastone=!num:~-1!
  28.     if "!lastone!"=="十" (set num=%num:十=0%) else (set num=%num:十=1%)
  29. )
  30. if %2 equ 3 set num=%num:十=%
  31. set num=000%num%
  32. set num=%num:~-3%
  33. endlocal&set %3=%num%&goto :eof
复制代码
可以处理 “三位数” 以下的,比如第九十九章,替换成099章
仅修改章节处的数字,比如 第十三章 七个小矮人 第十节 一把魔镜.avi,替换成 第013章 七个小矮人 第010节 一把魔镜.avi
若只需要保留两位数,把倒数第二行代码中-3改为-2
2

评分人数

TOP

回复 4# zghwelcome


    感谢提醒,三位数确实应该把十替换为空,之前不知道怎么弄错了。

刚好还想到另外一个问题,两位数的中文数字还应该判断‘十’在个位还是在十位上,如二十和十二分别替换为0或1.

TOP

回复 6# happy886rr


    代码精练! 有个小瑕疵,如  "第十章"

TOP

返回列表