Board logo

标题: [系统相关] 批处理如何根据网络状况允许(第一个求助帖)? [打印本页]

作者: lostwolf    时间: 2013-3-19 09:03     标题: 批处理如何根据网络状况允许(第一个求助帖)?

  1. @echo off
  2. :ping
  3. ping 61.135.169.105
  4. IF ERRORLEVEL 1 GOTO kill
  5. IF ERRORLEVEL 0 GOTO start
  6. :start
  7. start calc.exe
  8. ping 61.135.169.105
  9. IF ERRORLEVEL 1 GOTO kill
  10. IF ERRORLEVEL 0 GOTO ping
  11. :kill
  12. taskkill -f -im calc.exe
  13. @ping -n 2 61.135.169.105
  14. IF ERRORLEVEL 1 GOTO kill
  15. IF ERRORLEVEL 0 GOTO start
复制代码
思索半天未能解决
还是发到bathome 来了

上面的代码写得有问题

想实现个功能 如果网络 顺畅 就执行 一次calc.exe
如果网络不顺畅 就kill 掉该进程

不允许存在 两个 或多个该进程
继续探测网络状况
如果顺畅了 延时 5分钟 继续 执行 calc.exe

整个批处理一直循环下去
作者: BAT-VBS    时间: 2013-3-19 10:21

  1. @echo off
  2. :ping
  3. ping 61.135.169.105 && goto :kill
  4. :start
  5. start calc.exe
  6. rem 具体时间请自己调整
  7. ping -n 60 61.135.169.105
  8. :kill
  9. taskkill -f -im calc.exe
  10. rem 具体时间请自己调整
  11. ping -n 10 61.135.169.105
  12. goto :ping
复制代码

作者: lostwolf    时间: 2013-3-19 10:39

本帖最后由 lostwolf 于 2013-3-19 23:52 编辑
  1.     @echo off
  2.     :top
  3.     ping -n 1 -l 1 61.135.169.105
  4.     IF ERRORLEVEL 1 GOTO kill
  5.     IF ERRORLEVEL 0 GOTO start
  6.     :start
  7.     TaskList|Findstr /i "cain.exe"
  8.     If ErrorLevel 1 (
  9.     start cain.exe
  10.     )
  11.     goto top
  12.     :kill
  13.     TaskList|Findstr /i "cain.exe"
  14.     If ErrorLevel 0 (
  15.     taskkill /f -im cain.exe
  16.     ping 127.0.1 -n 10 -l 1
  17.     )
  18.     goto top
复制代码
这个如何?
作者: Marks    时间: 2013-3-19 11:36

回复 3# lostwolf


    不怎么样

没有延时,cpu狂飙到100%
TaskList|Findstr /i "calc.exe" 检测进程不准确,有可能误判
作者: lostwolf    时间: 2013-3-19 23:11

回复 4# Marks


    求优化的 占系统资源少的
    判断准确 且 不用 ping作为 延时的
作者: lostwolf    时间: 2013-3-19 23:19

继续求优化
作者: lostwolf    时间: 2013-3-19 23:30

求改进啊。
作者: Batcher    时间: 2013-3-19 23:45

回复 7# lostwolf


可以考虑放到任务计划里面每分钟执行一次
作者: lostwolf    时间: 2013-3-19 23:54

回复 4# Marks


    那用什么方式检测进程




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2