批处理问题(高手近来帮忙啊)

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:17:19
我的盘里有"爱","够爱","光荣"这三首歌,现在想做个批处理,选择1,2,3就可以听对应的歌曲,代码如下,可为什么不管选1或2或3都是播放"爱"这首歌呢,到底哪里错了,高手帮我改一下,小弟谢过,

@echo off
echo 1.爱 2.够爱 3.光荣
set /p hao=请选择歌曲,按相应序号之后即可
if "%hao%"=="3" goto a
if "%hao%"=="2" goto b
if "%hao%"=="1" goto c
:a
start H:\Music\光荣.mp3
:b
start H:\Music\够爱.mp3
:c
start H:\Music\爱.mp3
pause

这个 是由于没有跳转
@echo off
echo 1.爱 2.够爱 3.光荣
:ab
set /p hao=请选择歌曲,按相应序号之后即可
if "%hao%"=="3" goto a
if "%hao%"=="2" goto b
if "%hao%"=="1" goto c
:a
start H:\Music\光荣.mp3
goto ab
:b
start H:\Music\够爱.mp3
goto ab
:c
start H:\Music\爱.mp3
goto ab

@echo off
setlocal enabledelayedexpansion
::自己加歌吧,格式就是set music数字=歌名.mp3
set music1=爱.mp3
set music2=够爱.mp3
set music3=光荣.mp3
set Mp3drv=H:\Music\
:ag
cls
::(1,1,3)这里的3是你一共有3首歌,加多了就改下
for /l %%i in (1,1,3)do echo %%i.!music%%i!
set /p hao=请选择歌曲,按相应序号之后即可
if "%hao%"=="" goto ag
start %Mp3drv%!music%hao%!
echo 正在播放“!music%hao%!”
pause

goto只是一个跳转命令
在你的程序中,goto:a之后他没有出口,就会接着向下执行后面的语句
结果就是先播放第一首,然后立刻播放第二首,然后接着播放第三首
一般播放器在播放一首歌时,立刻打开第二首就会停掉第一