我一直在尝试让这段代码正常工作,但是每次调整都失败了。我需要这段代码打开指定目录中的所有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队列系统在一个进程中打开)并且它会一直打开它们直到它到达最后一个文件然后开始播放最后一个文件文件。因为批处理过程当然已经结束,而且它不在循环中。
答案 0 :(得分:1)
制作.M3U播放列表。您可能还会发现让用户browse for the album folder而不是要求他输入它是有用的。
@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"
答案 1 :(得分:0)
因为你有媒体播放器尝试这个:
@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
有一些属性可以用你想要的方式改变。