比如用如下代码,在当前目录放置4首WAV格式的歌曲,分别命名为1.WAV、2.WAV、3.wav、4.wav。可以通过随机数获取,实现分别播放不同歌曲的目的。
播放步骤调用的是Powershell命令,该命令会在等待歌曲播放结束才会继续执行后面步骤。而通过获取EXE进程是否存在来判断,是否需要继续循环播放歌曲。- @shift /0
- @echo off
- cd /d "%~dp0"
- taskkill /f /t /IM powershell.exe 1>nul 2>nul
- setlocal enabledelayedexpansion
- :run
- set /a music=%random%%%4+1
- if !music!==!music1! (goto run)
- set "music1=%music%"
- powershell -c (New-Object Media.soundPlayer "%music1%.wav").PlaySync();
- tasklist |Find "QQ.exe" >nul && (goto run)
- exit
复制代码 如果歌曲名称不想改变,不想定义为数字,就需要做如下处理:- @shift /0
- @echo off
- cd /d "%~dp0"
- taskkill /f /t /IM powershell.exe 1>nul 2>nul
- setlocal enabledelayedexpansion
- :run
- set /a music=%random%%%4+1
- if !music!==!music1! (goto run)
- set "music1=%music%"
- if !music1!==1 set music1=等一分钟.wav
- if !music1!==2 set music1=听.wav
- if !music1!==3 set music1=夜猫.wav
- if !music1!==4 set music1=爱如火.wav
- powershell -c (New-Object Media.soundPlayer "%music1%.wav").PlaySync();
- tasklist |Find "QQ.exe" >nul && (goto run)
- exit
复制代码 那么如果想用DIR方案来处理,该如何修改,关联批量歌曲文件。 |