Board logo

标题: [文件操作] 【已解决】求助BAT脚本批量将文件名中歌曲名和歌手互换位置 [打印本页]

作者: whink    时间: 2024-4-12 16:51     标题: 【已解决】求助BAT脚本批量将文件名中歌曲名和歌手互换位置

本帖最后由 whink 于 2024-4-12 18:27 编辑

例如:批量将下面的文件命名为这样:孙燕姿 - 绿光.mp3
Dream It Possible - Delacey. lrc
Dream It Possible - Delacey.mp3
Dream It Possible -张靓颖. lrc
Dream It Possible-张靓颖.mp3
绿光-孙燕姿. lrc
绿光-孙燕姿.mp3
偷心-张学友. lrc
偷心-张学友.mp3
我怕来者不是你- 小蓝背心. lrc
我怕来者不是你-小蓝背心.mp3
诛仙恋-任贤齐. lrc
诛仙恋-任贤齐.mp3
作者: 77七    时间: 2024-4-12 17:14

  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /a-d *.mp3 *.lrc "*. lrc"') do (
  4. call :1 "%%~ni" "%%~xi"
  5. )
  6. pause & exit
  7. :1
  8. set str=%~1
  9. setlocal enabledelayedexpansion
  10. for /l %%l in (1,1,5) do (
  11. set "str=!str: -=-!"
  12. set "str=!str:- =-!"
  13. )
  14. endlocal & set str=%str%
  15. for /f "tokens=1-2 delims=-" %%a in ("%str%") do (
  16. ren "%~1%~2" "%%b - %%a%~2"
  17. echo ren "%~1%~2" "%%b - %%a%~2"
  18. )
  19. exit /b
复制代码

作者: whink    时间: 2024-4-12 18:27

完美解决。谢谢777
作者: terse    时间: 2024-4-12 23:34

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b /a-d *.mp3 *.lrc') do (
  3.      set "ext=%%~xi"
  4.      set "filename=%%~ni"
  5.      for /f "tokens=*" %%i in ("!filename:*-=!") do  set "name=%%~nxi"
  6.      for /f "delims=-" %%j in ("!filename!") do (
  7.           echo ren "%%i" "!name! - %%~xnj!ext!"
  8.      )
  9. )
  10. pause
复制代码





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