Board logo

标题: [其他] 批处理如何判断宽带是否连接? [打印本页]

作者: Wingl83    时间: 2008-8-25 22:28     标题: 批处理如何判断宽带是否连接?

如题,判断宽带是否连接,若是,执行N个程序,若否,等待链接后再执行。
作者: pusofalse    时间: 2008-8-25 22:31

描述模糊,扣分。。
N个程序,在哪,请描述清楚。
等待连接后执行,要让此批处理帮你连接吗,还是一直处于监控状态,等其他程序连接了在执行?
作者: Wingl83    时间: 2008-8-25 22:50

对不起,是我表达不清楚。

我想运行的程序是
C:\Program Files\Tencent\TM2008\Bin\TM.exe
D:\bibidu\bibidu2.5.exe
D:\Fetion\Fetion.exe
但都需要宽带连接,所以我想做个批处理,另这些程序等宽带连接后再执行。

我的是自动链接的,但时间不固定,所以需要判断是否已经链接,再执行程序。批处理中不用再包括链接命令了,

谢谢。

[ 本帖最后由 Wingl83 于 2008-8-25 22:56 编辑 ]
作者: pusofalse    时间: 2008-8-25 23:00

  1. @echo off
  2. for /f "skip=1 delims=" %%a in ('rasdial') do (
  3.          ipconfig|findstr/i "%%a">nul&&(
  4.          start "" "C:\Program Files\Tencent\TM2008\Bin\TM.exe"
  5.          start "" "D:\bibidu\bibidu2.5.exe"
  6.          start "" "D:\Fetion\Fetion.exe"
  7.         )
  8.         goto :next
  9. )
  10. :next
  11. pause
复制代码
  1. @echo off
  2. ping -n 2 www.baidu.com>nul&&(
  3. start "" "C:\Program Files\Tencent\TM2008\Bin\TM.exe"
  4. start "" "D:\bibidu\bibidu2.5.exe"
  5. start "" "D:\Fetion\Fetion.exe"
  6. )
  7. pause
复制代码

[ 本帖最后由 pusofalse 于 2008-8-25 23:10 编辑 ]
作者: Wingl83    时间: 2008-8-25 23:28

可否解释一下是什么意思?我是自动链接宽带的,但若我将上述三个软件加入启动项,宽带还没有链接,程序就已经启动,所以导致启动错误。本来想用ping做延时,但不确定时间。所以我想做个判断语句,判断宽带是否连接,若是,执行上述三个程序,若否,等待链接后再执行。

我运行了一下版主的批处理,并不是这样,是不是我的表达还有什么问题?

[ 本帖最后由 Wingl83 于 2008-8-25 23:30 编辑 ]
作者: pusofalse    时间: 2008-8-25 23:38

你把上面的批处理放在启动项里,在从启动项里把那三个软件删除,放回它原有的位置。
作者: Wingl83    时间: 2008-8-25 23:42

这样就可以了吗?放第一个还是第二个?
作者: pusofalse    时间: 2008-8-25 23:43

都可以
作者: Wingl83    时间: 2008-8-25 23:51

我将这三个正在运行的程序关闭,断开网络(已设定5秒后重新链接),再运行该批处理,但重新链接后并没有运行这三个程序啊?!
作者: pusofalse    时间: 2008-8-26 00:03

这是理所当然的。
当前未连接网络就不会运行你的程序,若连接网络则反之。
运行批处理的时候,你不是已经断开网络,5秒之后续连的吗。
作者: Wingl83    时间: 2008-8-26 00:08

是啊,但5秒续连后并没有运行这些程序啊。我的想法是,判断宽带是否连接,若是,执行上述三个程序,若否,则一直监控,直到判断宽带链接后再执行这三个程序。

原来我是这样做的:
@echo off
ping /n 60 127.1>nul
::作为等待宽带自动链接的延时,但因为时间不一,所以有时不需要等待60秒。我想持续监控宽带,若链接后自动运行这三个程序。
start "" "C:\Program Files\Tencent\TM2008\Bin\TM.exe"
start "" "D:\bibidu\bibidu2.5.exe"
start "" "D:\Fetion\Fetion.exe"

[ 本帖最后由 Wingl83 于 2008-8-26 00:12 编辑 ]
作者: panshao    时间: 2008-8-26 00:09

不知道人还在吗~?可以帮我解答下问题吗~?偶有个关于运算的问题`
作者: pusofalse    时间: 2008-8-26 00:12

批处理不是用来监控的,那将非常消耗电脑资源。
你没有理解我的意思。
你的程序之所以没有打开,是因为你在运行批处理的时候没有连接到网络。
你再试下这个
  1. @echo off
  2. :loop
  3. ping -n 2 www.baidu.com>nul&&(
  4. start "" "C:\Program Files\Tencent\TM2008\Bin\TM.exe"
  5. start "" "D:\bibidu\bibidu2.5.exe"
  6. start "" "D:\Fetion\Fetion.exe"
  7. exit/b
  8. )
  9. goto loop
  10. pause
复制代码

[ 本帖最后由 pusofalse 于 2008-8-26 00:15 编辑 ]
作者: Wingl83    时间: 2008-8-26 00:13

就是说不可以做到一链接就运行程序?
作者: panshao    时间: 2008-8-26 00:14

斑竹可以帮帮我吗~?偶有个问题。。想请教你一下~
作者: Wingl83    时间: 2008-8-26 00:15     标题: 回复 15楼 的帖子

我也是小菜鸟,不如你另开新帖,说出你的问题,一定会有人回答你的。
作者: pusofalse    时间: 2008-8-26 00:16     标题: 回复 15楼 的帖子

请单独开一贴,请注意在发帖的时候把标题和描述写清楚,让人能明白其中意思,否则关闭主题。^_^
作者: panshao    时间: 2008-8-26 00:18

以开了~~麻烦斑竹帮看下~~谢了
作者: Wingl83    时间: 2008-8-26 00:19

原帖由 pusofalse 于 2008-8-26 00:12 发表
批处理不是用来监控的,那将非常消耗电脑资源。
你没有理解我的意思。
你的程序之所以没有打开,是因为你在运行批处理的时候没有连接到网络。
你再试下这个
@echo off
:loop
ping -n 2 www.baidu.com>nul&&(
...


谢谢版主,可以了,之前又说这样非常消耗电脑资源,我这样会消耗吗?
作者: 韩立    时间: 2012-10-17 14:54

不知道楼主能否收到,今天研究了一下,如果理解正确可以满足楼主要求。
  1. @echo off
  2. :1
  3. ping www.baidu.com
  4. rem 检查网络状态
  5. if %errorlevel%==0 goto start
  6. rem 检联网则跳转到start
  7. choice /t 5 /n /d y /m "$延迟5秒$"
  8. goto :1
  9. rem 未联网则等待5秒重新检测。choice /t 5 /n...一句中可修改5为其他整数,代表了延迟时间。
  10. :start
  11. start "" "软件目录1"
  12. start "" "软件目录2"
  13. start explorer
  14. rem 启动部分,自行修改启动软件目录或自行继续添加。
复制代码





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