停止播放音乐
Stop Music Once Playing
我正在尝试让歌曲在 Windows 的背景中播放,经过一番查找后我发现了这个:
@echo off
set file=RRLJ.mp3
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs
这对于开始播放歌曲非常有效,但我无法从 .bat
文件中停止播放。我发现缩短它的唯一方法是打开任务管理器并将其从进程中关闭。
我试过:
taskkill /im wscript.exe
但我一直在 window 中听到一些说法:
成功:向进程 "wscript.exe" 发送终止信号,PID 为 185448
但音乐会继续播放,直到我用任务管理器手动结束它
我会使用 /T
开关(Tree kill):终止指定的进程以及由它启动的所有子进程。
这是一个脚本,用于查找 ProcessID
以仅使用 PID
:
终止完全需要的进程
@ECHO OFF >NUL
for /F "usebackq tokens=*" %%G in (
`wmic process where "CommandLine like '%%sound.vbs%%' AND Caption like '%%script.exe%%'" get ProcessID/value ^|find /I "="`
) do (
rem echo %%G
for /F "tokens=2 delims==" %%H in ("%%~G") do echo taskkill /T /F /PID %%H
)
注意 taskkill
命令只是回显...调试时删除 echo
。
这对我有用,而且只有一行。
Taskkill /IM "wscript.exe" /F>nul 2>&1
我正在尝试让歌曲在 Windows 的背景中播放,经过一番查找后我发现了这个:
@echo off
set file=RRLJ.mp3
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs
这对于开始播放歌曲非常有效,但我无法从 .bat
文件中停止播放。我发现缩短它的唯一方法是打开任务管理器并将其从进程中关闭。
我试过:
taskkill /im wscript.exe
但我一直在 window 中听到一些说法: 成功:向进程 "wscript.exe" 发送终止信号,PID 为 185448 但音乐会继续播放,直到我用任务管理器手动结束它
我会使用 /T
开关(Tree kill):终止指定的进程以及由它启动的所有子进程。
这是一个脚本,用于查找 ProcessID
以仅使用 PID
:
@ECHO OFF >NUL
for /F "usebackq tokens=*" %%G in (
`wmic process where "CommandLine like '%%sound.vbs%%' AND Caption like '%%script.exe%%'" get ProcessID/value ^|find /I "="`
) do (
rem echo %%G
for /F "tokens=2 delims==" %%H in ("%%~G") do echo taskkill /T /F /PID %%H
)
注意 taskkill
命令只是回显...调试时删除 echo
。
这对我有用,而且只有一行。
Taskkill /IM "wscript.exe" /F>nul 2>&1