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

[文件操作] [已解决]求个文件批量改名的批处理,先谢了

有个文件夹下有一大堆的.MP3文件,如
茨威格.[象棋的故事(3)].张长水---[阳光宝贝][bbs.bbxpp.cn].mp3
歌德.[少年维特的烦恼]B---[阳光宝贝][bbs.bbxpp.cn].mp3
陀思妥耶夫斯基.[白夜]---[阳光宝贝][bbs.bbxpp.cn].mp3
...
想把文件名后面一段"---[阳光宝贝][bbs.bbxpp.cn]"去掉,形成
茨威格.[象棋的故事(3)].张长水.mp3
歌德.[少年维特的烦恼]B.mp3
陀思妥耶夫斯基.[白夜].mp3
...
先谢了
1

评分人数

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

纯批可以这样(测试无误后把 echo ren 改成 ren):
  1. @echo off
  2. for /f "delims=" %%a in ('dir *---*.mp3') do (
  3.    set str=%%a
  4.    setlocal enabledelayedexpansion
  5.    set "new=!str---="!
  6.    echo ren !str! "!new!.mp3"
  7.    endlocal
  8. )
  9. pause
复制代码
bkren.exe   http://bbs.bathome.net/viewthread.php?tid=13231
  1. bkren "---\.*\.mp3" ".mp3"
复制代码
perl:
  1. foreach $file (glob "*---*.mp3"){
  2. $newFile = $file;
  3. $newFile =~ s/---.*\././;
  4. rename $file,$newFile;
  5. }
复制代码
powershell:
  1. Get-ChildItem *---*.mp3 | Rename-Item -NewName {$_.Name -replace '---.*\.','.'}
复制代码
1

评分人数

TOP

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

TOP

  1. @echo off
  2. for /f "delims=" %%i in ('dir /b/a-d *---*.mp3') do (
  3.     for /f "delims=-" %%j in ("%%i") do ren "%%i" "%%j.mp3"
  4. )
  5. pause
复制代码
1

评分人数

TOP

谢谢各位,当真好用极了

TOP

返回列表