当下载速度下降时,在Windows中杀死进程

时间:2015-07-21 19:39:53

标签: javascript windows powershell batch-file networking

我正在寻找一个代码,例如powershell / cmd,以便在下载速度低于5 mbps时终止进程。

情况是我正在使用VLC媒体播放器进行直播。通常会发生广播故障或开始播放的情况。

解决方案是重启。但是,当有人抱怨无法连接时,我才重启它。

我正在寻找一个脚本/代码来监控这个过程,并在下载速度低于某个水平或不一致时自动重启/终止它。

1 个答案:

答案 0 :(得分:0)

暗示VLC从磁盘读取内容并且速度与其出站网络速度相匹配,您可以使用1秒钟测量的磁盘读取速度过程性能计数器:

@echo off
setlocal enableDelayedExpansion

set LIMIT=500000
set PROCESS=VLC

:LOOP
set line=0
for /f "delims=, tokens=2" %%a in ('typeperf -sc 1 "\Process(%PROCESS%)\IO Read Bytes/sec"') do (
    set /a line+=1
    if !line!==2 (
        set speed=%%a
        set speed=!speed:"=!
        for /f "delims=. tokens=1" %%b in ("!speed!") do set speed=%%b
        if !speed! LSS %LIMIT% (
            taskkill /f /im %PROCESS%.exe
            call RUN-VLC.bat
        )
    )
)
goto LOOP

假设5mbps是500kBps,则LIMIT相应地设置为500000