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

[文件操作] 【已解决】求助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
1

评分人数

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

  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
复制代码
2

评分人数

    • whink: 厉害了,谢谢技术 + 1
    • 77七: 学习了!去首尾空格技术 + 1

TOP

完美解决。谢谢777

TOP

  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
复制代码
2

评分人数

    • whink: 技术强。乐于助人技术 + 1
    • Batcher: 乐于助人技术 + 1
bat小白,请多指教!谢谢!

TOP

返回列表