复制代码
- @echo off&color 2f
- rem 这部分功能是搜索U盘中所有含mp3歌曲的文件夹,并保存在list.txt中
- call :ad&echo.&echo.&echo.
- set /p pan=默认 U 盘盘符是 I,要修改则输入盘符,否则 直接回车:
- if not defined pan (set pan=I)
- if not exist %pan%: (
- echo.&echo.
- echo 程序没有检测到U盘,请插入U盘再试&pause>nul&cls&%0
- )
- echo %pan%:>list.txt
- (
- for /f "usebackq delims=" %%l in (`dir /ad-s/b/n/s %pan%:`) do (
- set "dp=%%l"
- call :if
- )
- ) 2>nul
- echo.&echo.&echo.
- rem 这部分主要是在D、E、F、G盘中找到歌词所在路径,由于可能不止一个文件夹里存在歌词,所以提供了手工输入方式
- :find
- set /p dd=请输入歌词所在路径,或者 直接回车 由程序自动搜索路径:
- if not defined dd (
- for %%s in (D E F G) do (
- for /f "usebackq delims=" %%l in (`dir /b/n/s %%s:\*.lrc`) do (
- set "lj=%%l"
- call :lr
- )
- )
- ) 2>nul
- if not exist %dd%\*.lrc (goto none)
- rem 这部分的功能是根据list.txt中的路径逐个给该路径下的mp3歌词
- :start
- set n=0&set num=0&set ex=0
- (
- for /f "usebackq delims=" %%m in (`type list.txt`) do (
- for /l %%i in (1 1 1550) do (echo %%i>nul)
- set "loc=%%m"
- for /f "usebackq delims=" %%i in (`dir /b /n "%%m\*.mp3"`) do (
- cls&call :ad
- echo.&echo.&echo 程序当前工作路径:%%m
- echo.&echo.&echo.&echo 程序正在匹配文件:%%i
- set "str=%%i"
- call :copy
- )
- )
- ) 2>nul
- del list.txt 2>nul
- set /a no=num-ex-n
- cls&call :ad
- echo.&echo.
- echo 程序共找到 %num% 首 mp3,其中 %ex% 首原来已经有歌词
- echo.&echo.&echo.
- echo 另外 %no% 首没有找到歌词,程序一共匹配了 %n% 首歌词
- pause>nul
- exit
- rem 这里是匹配歌词的实际操作代码,针对mp3的各种命名方式做了些处理
- :copy
- set /a num=num+1
- set lrc=%str:~0,-4%
- for /f "tokens=1,2 delims=- " %%n in ("%lrc%") do (
- set "name=%%n"&set "sy=%%o"
- )
- if exist "%loc%\%lrc%.lrc" (set /a ex=ex+1&goto :eof)
- (copy "%dd%\*%lrc%.lrc" "%loc%\%lrc%.lrc") >nul
- if exist "%loc%\%lrc%.lrc" set /a n=n+1&goto :eof
- (copy "%dd%\%name% - %sy%.lrc" "%loc%\%lrc%.lrc") >nul
- if exist "%loc%\%lrc%.lrc" set /a n=n+1&goto :eof
- (copy "%dd%\%sy% - %name%.lrc" "%loc%\%lrc%.lrc") >nul
- if exist "%loc%\%lrc%.lrc" set /a n=n+1&goto :eof
- goto :eof
- rem 以下是一些标签,被上面的各部分代码调用
- :if
- if exist "%dp%\*.mp3" (echo "%dp%">>list.txt)
- goto :eof
- :lr
- for /f %%x in ("%lj%") do (
- set "dd=%%~dpx"
- goto start
- )
- goto :eof
- :ad
- echo *************************************************
- echo * ************************************** *
- echo * * * *
- echo * * 歌词匹配工具 * *
- echo * * * *
- echo * * 自动给 U 盘中的 mp3 匹配 lrc 歌词 * *
- echo * * * *
- echo * ************************************** *
- echo *************************************************
- goto :eof
- :none
- echo.&echo.&echo.&echo 程序在本机或指定路径中没有找到 lrc 歌词,按任意键退出!&pause>nul&del list.txt
欢迎光临 批处理之家 (http://www.bathome.net/) | Powered by Discuz! 7.2 |