REM Productversion: 2. 0. 0. 0
REM Fileversion: 2. 0. 0. 0
REM authorname: tianzizhi
REM Appiconname: dos多功能音乐播放器
@echo off
title dos多功能音乐播放器 作者:张吉海(cn-dos)
:bof
cls
setlocal enabledelayedexpansion
del %temp%\dir\*.* /a/f/s/q >nul 2>nul
del %temp%\shuffle\*.* /a/f/s/q >nul 2>nul
set /a a=0
color 74
echo *************************************************************************
echo ======================欢迎使用dos多功能音乐播放器=======================
echo ====================制作人:张吉海 #cn-dos:tianzizhi#===================
echo 1.本软件完全免费,核心播放器为dos版mplayer,本人主要完成设计和控制功能
echo 2.随机+指定播放功能+url播放,改善mplayer不能随机播放url的缺陷.
echo 3.换歌请按Pgup or ESC,四箭头调节进度,按空格键暂停.
echo 4.目录歌曲随便加,摆脱掉目录歌曲更改时,播放器列表要也要手到更改的烦恼.
echo 5.具有筛选和搜索目录功能,音乐目录里有其它文件也可以,不影响播放.
echo 6.支持音乐格式:mp3,wma,wmv,avi,mpeg,rm,rmvb,并自动判断目录内有无歌曲.
echo 7.八种播放模式随你选,在显示(退出)字样时输入exit,回车,可退出此模式.
echo 8.有什么建议或问题,请联系:zhangjihai095@163.com或QQ:419503077
echo *************************************************************************
set biao= *************************************************************************
set biao2= =================== 欢迎使用dos随机+指定音乐播放器=====================
set biao3= ==================制作人:张吉海 #cn-dos:tianzizhi#====================
set biao4= *************************************************************************
attrib.exe +h +s %temp%\*.bat >nul 2>nul
if not exist mplayer\mplayer.exe echo 错误,找不到mplayer.exe,请把mplayer放到本软件同一目录里,然后按任意键继续. && pause
if not exist mplayer\mplayer.exe exit
if exist 目录.txt ( for /f "delims=" %%i in (目录.txt) do set ge=%%i & goto zhu )
set /p ge=请输入歌曲所在目录或盘符(盘符搜索慢),如(d:\音乐或d:\):
echo.
echo 是否记住此目录,若记住下次运行时不必输入目录..
echo 记住后若想再换目录,请删除(目录.txt)或在(目录.txt)里直接改成想要换的目录..
set /p ji=y,n:
if %ji%==y echo %ge% >目录.txt
echo.
goto zhu
:zhu
echo 请稍等,正在搜索文件.......
echo.
if exist %temp%\di.txt echo 搜索成功
set num=1
for /f "delims=" %%i in (%temp%\di.txt) do (
echo %%i>%temp%\dir\!num!.txt
set /a num=!num!+1
)
attrib +h +s %temp%\di.txt >nul 2>nul
attrib +h +s %temp%\dir >nul 2>nul
if exist 歌曲列表.txt del 歌曲列表.txt /a/f/q
if not exist 歌曲列表.txt set /a num=1 & for /f "delims=" %%i in ('mplayer\where.exe /r %ge% *.mp3 *.wma *.wmv *.avi *.mp*g *.rm *.rmvb 2^>nul') do echo !num! %%i>>歌曲列表.txt 2>nul & set /a num=!num!+1
set /a num=!num!-1
echo 歌曲列表已在目录中,请查看.
echo.
:zheng
echo 1 随机播放
echo 2 指定一首播放
echo 3 指定一首循环播放
echo 4 按顺序播放全部
echo 5 按顺序播放若干首歌
echo 6 从列表中选几首喜欢的听
echo 7 根据url播放在线歌曲
echo 8 播放文件中的url在线歌曲
echo .
set /p a=请选择播放模式:
if %a%==1 goto go
if %a%==2 goto yi
if %a%==3 goto bo
if %a%==4 goto shun
if %a%==5 goto xu
if %a%==6 goto tiao
if %a%==7 goto url
if %a%==8 goto fileurl
if not %a%==1 if not %a%==2 if not %a%==3 if not %a%==4 if not %a%==5 if not %a%==6 if not %a%==7 if not %a%==8 echo 错误,请选择正确代号....&echo. & goto zheng
:url
set /p url=请输入歌曲的url地址:
set /p loop=请输入播放次数:
start /b/min/wait mplayer\mplayer %url% -loop %loop%
echo 播放完毕,是否继续播放..
set /p xuan=y,n:
if %xuan%==y goto url
cls
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
if %xuan%==n goto zheng
:fileurl
if not exist url歌曲.txt echo 歌曲文件缺失,请在程序目录下新建"url歌曲.txt"文件,把歌曲url加到文件里 && pause
if not exist url歌曲.txt exit
set /p isbuffer=是否随机播放(y/n):
set shufflenum=1
md %temp%\shuffle\ >nul 2>nul
if %isbuffer%==y for /f "delims=" %%a in (url歌曲.txt) do (
echo %%a>%temp%\shuffle\!shufflenum!.txt
set /a shufflenum=!shufflenum!+1
)
if %isbuffer%==y goto shufflego
if %isbuffer%==n for /f "delims=" %%a in (url歌曲.txt) do (
start /b/min/wait mplayer\mplayer %%a
mplayer\choice.exe /c yn /m "go on ok?" /t 2 /d y
if errorlevel 2 cls & goto bof
)
echo 播放完毕,是否继续播放..
set /p xuan=y,n:
if %xuan%==y goto fileurl
cls
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
if %xuan%==n goto zheng
:go
set /a b=!num!-1
set /a c=%random% %% %b%+1
for /f "delims=" %%j in (%temp%\dir\%c%.txt) do (
start /b/min/wait mplayer\mplayer "%%j"
mplayer\choice.exe /c yn /m "go on ok?" /t 2 /d y
if errorlevel 5 goto yes
if errorlevel 2 cls & goto bof
:yes
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
goto go)
:shufflego
set /a bb=!shufflenum!-1
set /a cc=%random% %% %bb%+1
for /f "delims=" %%j in (%temp%\shuffle\%cc%.txt) do (
start /b/min/wait mplayer\mplayer %%j
mplayer\choice.exe /c yn /m "go on ok?" /t 3 /d y
if errorlevel 5 goto shuffleyes
if errorlevel 2 cls & goto bof
:shuffleyes
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
goto shufflego)
:bo
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p bofang=请输入你要听歌的代码(或退出此模式):
if %bofang%==exit cls & goto bof
set /p xun=请输入要循环的次数:
if %bofang% LSS 1 echo 错误,请输入正确代码... & set /p bofang=请输入你要听歌的代码: & set /p xun=请输入要循环的次数:
if %bofang% GTR !num! echo 错误,请输入正确代码... & set /p bofang=请输入你要听歌的代码: & set /p xun=请输入要循环的次数:
if %bofang% LSS 1 goto bo
if %bofang% GTR !num! goto bo
for /f "delims=" %%i in (%temp%\dir\%bofang%.txt) do @(
set c=1 & goto fang
)
:fang
for /f "delims=" %%i in (%temp%\dir\%bofang%.txt) do @(
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
start /min/b /wait mplayer\mplayer "%%i"
set /a c=!c!+1
if !c! LEQ %xun% (goto fang) else (goto bo)
)
:yi
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p bofang=请输入你要听歌的代码(或退出此模式):
if %bofang%==exit cls & goto bof
if %bofang% LSS 1 echo 错误,请输入正确代码... & set /p bofang=请输入你要听歌的代码:
if %bofang% GTR !num! echo 错误,请输入正确代码... & set /p bofang=请输入你要听歌的代码:
if %bofang% LSS 1 goto yi
if %bofang% GTR !num! goto yi
for /f "delims=" %%i in (%temp%\dir\%bofang%.txt) do @(
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
start /min/b /wait mplayer\mplayer "%%i" & goto yi)
:shun
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
for /f "delims=" %%i in (%temp%\di.txt) do @(
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
start /min/b /wait mplayer\mplayer "%%i"
mplayer\choice.exe /c yn /m "go on ok?" /t 2 /d y
if not errorlevel 5 if errorlevel 2 cls & goto bof
)
echo 播放完毕,是否继续循环..
set /p xuan=y,n:
if %xuan%==y goto shun
if %xuan%==n exit
:xu
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p kai=请输入开始的代号(或退出此模式):
if %kai%==exit cls & goto bof
set /p jie=请输入结束的代号:
if %kai% LSS 1 echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %kai% GTR !num! echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %jie% LSS 1 echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %jie% GTR !num! echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %kai% GTR %jie% echo 错误,请输入正确代码... & set /p kai=请输入开始的代码: & set /p jie=请输入结束的代号:
if %kai% LSS 1 goto xu
if %kai% GTR !num! goto xu
if %jie% LSS 1 goto xu
if %jie% GTR !num! goto xu
if %kai% GTR %jie% goto xu
goto hu
:hu
for /f "delims=" %%i in (%temp%\dir\%kai%.txt) do @(
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
start /min/b /wait mplayer\mplayer "%%i"
set /a kai=!kai!+1
if !kai! LEQ %jie% (goto hu) else (goto xu)
)
:tiao
del %temp%\tiao.txt /s /a /q /f >nul 2>nul
cls
if not exist 歌曲列表.txt echo 歌曲列表已不存在... && pause & goto bof
for /f "delims=" %%i in (歌曲列表.txt) do echo %%i
set /p zong=请输入总共要播放歌曲的个数(或退出此模式):
if %zong%==exit cls & goto bof
if %zong% LSS 1 echo 错误,请输入正确代码... & ping -n 3 127.0.1 >nul 2>nul & goto tiao
if %zong% GTR !num! echo 错误,请输入正确代码... & ping -n 3 127.0.1 >nul 2>nul & goto tiao
for /l %%i in (1,1,%zong%) do @(
set /p %%i=请输入一首歌的代号,并按回车:
if !%%i! LSS 1 echo 错误,请输入正确代码... & ping -n 4 127.0.1 >nul 2>nul & goto tiao
if !%%i! GTR !num! echo 错误,请输入正确代码... & ping -n 4 127.0.1 >nul 2>nul & goto tiao
echo !%%i! >>%temp%\tiao.txt
)
attrib +h +s %temp%\tiao.txt >nul 2>nul
goto kl
:kl
for /f "delims=" %%k in (%temp%\tiao.txt) do (
@ set /a i=%%k
for /f "delims=" %%j in (%temp%\dir\!i!.txt) do @(
echo %biao%
echo %biao2%
echo %biao3%
echo %biao4%
start /min/b /wait mplayer\mplayer "%%j"
)
)
echo 是否循环这几首歌......
set /p we=y,n:
if %we%==y goto kl
if %we%==n goto tiao