我一直在努力让这段代码正常工作,但每次调整都失败了。我需要这个代码来打开指定目录中的所有MP3,然后逐个播放文件。
这是代码:
set /p music=Enter location of playlist:
cd %music%
for %%M in (*.mp3) do start "C:Program Files (x86)Windows Media Player" /wait "%%M"
问题是,这会同时打开目录中的所有MP3文件(但由于Windows Media Player队列系统,它们在一个进程中打开),并且会一直打开它们,直到到达最后一个文件,然后开始播放最后的文件。因为批处理过程当然已经结束了,它不是循环的。
只需制作一个.M3U播放列表。你可能还发现让用户浏览相册文件夹而不是让他键入它很有用
@echo off
setlocal
path %PATH%;"%PROGRAMFILES(x86)%Windows Media Player"
rem // folder chooser: https://stackoverflow.com/q/15885132/1683264
set "psCommand=powershell -noprofile "(new-object -COM Shell.Application)^
.BrowseForFolder(0,"Please choose your album folder.",0,0).self.path""
for /f "delims=" %%I in ('%psCommand%') do set "folder=%%I"
>"%temp%playlist.m3u" (for /r "%folder%" %%I in (*.mp3 *.m4a *.ogg *.flac) do echo %%~fI)
start "" wmplayer "%temp%playlist.m3u"
当你有媒体播放器时,试试这个:
@if (@X)==(@Y) @end /* JScript comment
@echo off
rem :: the first argument is the script name as it will be used for proper help message
cscript //E:JScript //nologo "%~f0" %*
exit /b %errorlevel%
@if (@X)==(@Y) @end JScript comment */
var wmp = new ActiveXObject("WMPlayer.ocx");
wmp.URL = WScript.Arguments.Item(0);
wmp.openPlayer(wmp.URL);
您需要传递mp3文件的路径。WMPlayer.ocx
有一些属性,可以按照您喜欢的方式进行更改。