找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 122600|回复: 40

[网络连接] 批处理怎样监控网络流量并自动关机?

[复制链接]
发表于 2011-7-6 00:28:54 | 显示全部楼层 |阅读模式
本帖最后由 ygqiang 于 2011-10-7 00:13 编辑

xp系统下,晚上  用迅雷下载高清视频,一开始有200KB/S的下载速度,有的时候,就突然没有速度了。(是通过web页面拨号上网的,如果断线,会自动重新拨号,这个时候,在30分钟以内,会重新拨号多次)

如果30分钟以后,仍然无法拨号成功(不能上网),就自动关机


2011-9-28最新需求如下:

开机,自动启动并监视迅雷,如果迅雷没有运行,则一直监视

如果迅雷已经运行了,则如果20分钟之内网络流量<20k(还要考虑遇到无法拨号成功的情况),就自动关机。


看33楼代码。


33楼vbs代码出现新问题。
这个vbs代码,正常情况下,如果检测到运行迅雷,在2分钟内,如果流量《20k,才会自动关机。

问题就是:运行迅雷(不下载),即使开qq  看在线视频,还会在2分钟内自动关机。
运行迅雷(不下载),一直开qq  看在线视频,在2分钟内,流量应该》20k,应该不会自动关机啊?
 楼主| 发表于 2011-7-6 09:52:13 | 显示全部楼层
顶下,多谢各位啊。
发表于 2011-7-6 09:59:04 | 显示全部楼层
用批处理来监控迅雷的下载流量恐怕做不到...
发表于 2011-7-6 11:05:14 | 显示全部楼层
真是无所不能的批处理
发表于 2011-7-6 11:18:46 | 显示全部楼层
4# Demon


冷嘲热讽很有意思吗?
发表于 2011-7-6 11:29:56 | 显示全部楼层
4# Demon


冷嘲热讽很有意思吗?
zm900612 发表于 2011-7-6 11:18

在很多人看来,批处理是无所不能的,所以才会问这种问题
发表于 2011-7-6 11:34:22 | 显示全部楼层
6# Demon


哦,那我误会你了...刚刚鸡冻了哈,sorry
确实很多人把批处理的功能无限放大、看得太神秘,不过这也没办法呀,人家就是不会才来求助的嘛,要是对批处理的足够非常透彻,也就基本上能够自给自足了的。
发表于 2011-7-6 16:15:22 | 显示全部楼层
我记得是可以的,流量虽然监测不出来,但是可以监测到数据量,然后对比时间,可以知道大概速度。
检测数据流量命令: netstat -e

评分

参与人数 1技术 +1 收起 理由
zm900612 + 1 好思路

查看全部评分

发表于 2011-7-6 16:17:58 | 显示全部楼层
另外,“性能日志与警报”里面,可以监测“网络速度”,低于一定程度,可以自动执行命令。
发表于 2011-7-6 16:30:07 | 显示全部楼层
9# caruko


学习了...
不过 win7 下我一直搞不懂如何在“性能日志与警报”面板中设置触发任务,能否请知情人指点一下呢?
另外是否能够用批处理来操作“性能日志与警报”呢?
发表于 2011-7-6 17:18:19 | 显示全部楼层
10# zm900612


批处理只能开启&停止 已经存在的“ 性能日志与警报” 项目。

警报默认只会在日志里面写入日志,要执行脚本,需要自己更改。

评分

参与人数 1PB +2 收起 理由
zm900612 + 2 学习了

查看全部评分

发表于 2011-7-6 21:23:15 | 显示全部楼层
都说的我不懂。最主要是没弄过。要是自己弄过就能明白的多了
发表于 2011-7-7 08:29:03 | 显示全部楼层
本帖最后由 caruko 于 2011-7-7 08:32 编辑

试试这个脚本吧,主要为了防止数值溢出,所以直接去掉后3位,而不是/1024

  1. @echo off &setlocal ENABLEDELAYEDEXPANSION
  2. for /f "tokens=2" %%i in ('netstat -e ^|findstr "Bytes"') do (
  3.          set "kb=%%i"
  4.          set "kb=!kb:~0,-3!"
  5. )
  6. for /f "tokens=2,4,6,8" %%a in ('systeminfo ^|findstr "启动时间"') do (
  7.          set /a stime=( ( %%a*24 + %%b ) * 60 + %%c ) *60 + %%d
  8. )
  9. :loop
  10. ping -n 3000 127.1>nul
  11. for /f "tokens=2" %%i in ('netstat -e ^|findstr "Bytes"') do (
  12.          set "newkb=%%i"
  13.          set "newkb=!newkb:~0,-3!"
  14. )
  15. for /f "tokens=2,4,6,8" %%a in ('systeminfo ^|findstr "启动时间"') do (
  16.          set /a etime=( ( %%a*24 + %%b ) * 60 + %%c ) *60 + %%d
  17. )
  18. set /a ll= ( newkb-kb ) / ( etime - stime )
  19. if !ll! lss 20 (
  20.             shutdown -s -t 5
  21.             exit
  22. ) else (
  23.     set /a kb=newkb,stime=etime
  24.     goto :loop
  25. )
复制代码
发表于 2011-7-7 08:47:38 | 显示全部楼层
13# caruko


systeminfo 太慢了,建议用 wmic os 或者 net user %username%,而且没必要循环获取启动时间吧,那个太耗时了...而且通过启动时间到当前的时差来计算平均速度并非即时的,一旦开机久了就不准了,而且假如在开机之后久不联网,就产生误判了...
 楼主| 发表于 2011-7-7 10:38:18 | 显示全部楼层
顶下,期待高手来解决啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 11:34 , Processed in 0.010921 second(s), 10 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表