Board logo

标题: [文件操作] [已解决]批处理如何提取原文件名中的特定字符串重命名该文件 [打印本页]

作者: comicguests    时间: 2012-12-12 19:55     标题: [已解决]批处理如何提取原文件名中的特定字符串重命名该文件

本帖最后由 pcl_test 于 2016-7-22 16:12 编辑

比如,comic-[01] afd[abc1233]cf.mkv这个文件
重命名为01.mkv
只保留集数该怎么写呢?集数处于00--99中
感谢关注!
作者: apang    时间: 2012-12-12 20:27

本帖最后由 apang 于 2012-12-12 21:30 编辑

保存为test.vbs,与mkv文件放在一起,试试
  1. Set FSO = CreateObject("Scripting.FileSystemObject")
  2. For Each File in FSO.GetFolder(".").Files
  3.    Ext = FSO.GetExtensionName(File)
  4.    If LCase(Ext) = "mkv" Then RenFiles
  5. Next
  6. MsgBox "OK"
  7. Sub RenFiles()
  8.    Set Re = New RegExp
  9.    Re.Pattern = "(^.*\[)(\d{2})(\].*$)"
  10.    Re.Global = True
  11.    File.Name = Re.Replace(File.Name,"$2") & ".mkv"
  12. End Sub
复制代码

作者: 悬崖之树    时间: 2012-12-12 22:23

@echo off & setlocal enabledelayedexpansion
for %%i in (*.mkv) do (
   set a=%%i&set a=!a:~7,2!
   ren "%%i" "!a!.mkv"
)
pause
作者: hlzj88    时间: 2012-12-13 13:12

  1. @echo off
  2. title 音视频文件批量改名工具-by仰天长啸
  3. color 2e
  4. :begin
  5. echo.
  6. echo.
  7. echo.
  8. echo    ╭────────────────────────────────╮
  9. ECHO    │        说  明      本批处理需要放在歌曲文件夹里执行            │
  10. ECHO    │                                                                │
  11. ECHO    │ A. 消除文件名前的数字和其他 (文件范围是 mp3 wma wmv rm rmvb)   │
  12. ECHO    │                                                                │
  13. ECHO    │ b. 消除文件名前的其他       (文件范围是 mp3 wma wmv rm rmvb)   │
  14. ECHO    │                                                                │
  15. ECHO    │ c. 把文件夹名(歌手 连续剧)加到文件前,如果重复可用 A b来消除   │
  16. ECHO    │                                                                │
  17. ECHO    │ Q. 退出             说明:可以根据你的要求来修改不同文件类型   │
  18. ECHO    ╰────────────────────────────────╯
  19. echo.
  20. SET Choice=
  21. SET /P Choice=                  请选择要进行的操作(A  B  Q)回车确定!
  22. ECHO.
  23. IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
  24. IF /I '%Choice%'=='A' GOTO qu1
  25. IF /I '%Choice%'=='B' GOTO qu2
  26. IF /I '%Choice%'=='c' GOTO wen
  27. IF /I '%Choice%'=='Q' exit
  28. GOTO begin
  29. :qu1
  30. cls&setlocal  ENABLEDELAYEDEXPANSION
  31. @echo  你的选择包含去掉文件名中的   12345 67890 .
  32. @echo  请输入你额外需要去掉的文件名中的关键词并回车
  33. @echo   无也请回车,在这个界面里同样可以使用输入法:
  34. set /p var=
  35. for %%a in (*.mp3 *.wmv *.wma *.rm*) do (
  36.     set name=%%~na
  37.     set name2=%%~xa
  38.     for %%j in (0 1 2 3 4 5 6 7 8 9 . !var!) do set name=!name:%%j=!
  39.     call ren "%%a" "!name!!name2!"
  40. )
  41. cls
  42. echo.
  43. echo.
  44. echo.
  45. echo.
  46. @echo              已经完成 请核对有什么还需要去掉 可以输入再来一次
  47. echo.
  48. echo.
  49. echo.
  50. echo.
  51. goto begin
  52. :qu2
  53. cls&setlocal  ENABLEDELAYEDEXPANSION
  54. @echo  请输入你需要去掉的文件名中的关键词并回车
  55. set /p var=
  56. for %%a in (*.mp3 *.wmv *.wma *.rm* *.flv) do (
  57.     set name=%%~na
  58.     set name2=%%~xa
  59.     for %%j in (!var!) do set name=!name:%%j=!
  60.     call ren "%%a" "!name!!name2!"
  61. )
  62. cls
  63. echo.
  64. echo.
  65. echo.
  66. echo.
  67. @echo              已经完成 请核对有什么还需要去掉 可以输入再来一次
  68. echo.
  69. echo.
  70. echo.
  71. echo.
  72. goto begin
  73. :wen
  74. cls
  75. setlocal enabledelayedexpansion
  76. for /f "delims=" %%i in ('dir/b/s/a-d *.mp3 *.wma *.wmv *.rm* *.flv') do (
  77.     set "str=%%~nxi"
  78.     for /f "delims=" %%j in ("%%~dpi.") do (
  79.         set "str=!str:%%~nj-=!"
  80.         ren "%%i" "%%~nj-!str!"
  81.     )
  82. )
  83. echo.
  84. echo.
  85. echo.
  86. echo.
  87. @echo                        已 经 改 名 了,请 核 对 退 出
  88. echo.
  89. echo.
  90. echo.
  91. echo.
  92. goto begin
复制代码
这个是平时都在用的,几个功能结合在一起,现在代码里没有你要的MKV,自己添加进去就好了
作者: comicguests    时间: 2012-12-14 18:54

回复 2# apang


    成功了,非常感谢
作者: comicguests    时间: 2012-12-14 18:56

回复 3# 悬崖之树


    有点失败了,但还是感谢了!
作者: comicguests    时间: 2012-12-14 19:01

回复 4# hlzj88


    很有用,感谢了




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2