Board logo

标题: [系统相关] 批处理如何提取连网返回信息? [打印本页]

作者: frybud    时间: 2009-7-7 19:38     标题: 批处理如何提取连网返回信息?

做一个抢IP的程序,因为IP有限,大家都在抢ip。所以拨号的速度最重要,
主要调用rasdial进行宽带连接,问题是如何判断网络已经连接上,而退出循环。

我觉得在循环里加 查看网络连接状况的判断 ,是不是速度会减慢,比如用ping,多了一步判断,应该会影响拨号的速度吧

如何对返回信息进行判断?
比如
  1. rasdial LJ username password
复制代码
(LJ是我宽带连接的名称)
然后,如果没有连接上,
系统会返回一行信息:
734  ppp
:
                hh netcfg.chm
                                734

如果连接上,没加退出条件,循环会继续,返回信息是:
LJ


我的问题是如何获取这个返回信息,以用来判断是否连接上网络而退出循环?
作者: keen    时间: 2009-7-7 22:43     标题: 回复 1楼 的帖子

  1. @echo off
  2. for /f "delims=" %%i in ('rasdial LJ username password') do if "%%i" neq "LJ" (goto begin) else echo 连接上!&pause&exit
复制代码

作者: zljzsmzzx    时间: 2009-7-8 20:30

楼上的代码是个死循环。因为"%%i"永远都不会等于"LJ"。自己看下图。
  1. @echo off
  2. :LJ
  3. for /f "tokens=2" %%i in ('Rasdial LJ username password') do set "a=%%i"
  4. if "%a:~0,-1%" neq "LJ" goto LJ
  5. exit
复制代码

作者: keen    时间: 2009-7-8 22:20     标题: 回复 3楼 的帖子

是不是死循环我还真不知道,因为根据楼主提供的信息,给出的代码。
我这里没有环境测试,所以……
作者: frybud    时间: 2009-7-10 01:50

多谢2楼3楼!
还有个问题,关于创建宽带连接的问题,查了好多代码,都是得事先手工创建一个连接,比如我这里的LJ,还得事先建立,能不能用bat直接创建一个宽带连接?
作者: Batcher    时间: 2009-7-10 11:26     标题: 回复 5楼 的帖子

你查看了哪些代码?为何要新建呢,就用已有的“本地连接”不行吗?
作者: frybud    时间: 2009-7-11 01:25

不是本地连接,是宽带连接,但大多数人的宽带连接起得名字都不一样
作者: Batcher    时间: 2009-7-11 08:57     标题: 回复 7楼 的帖子

本地连接也好,宽带连接也罢,你的目的不就是要rasdial上网么?名字不一样没关系,可以在批处理中自动获取,本论坛早有讨论,你可以搜索一下相关代码。
作者: frybud    时间: 2009-7-22 15:29     标题: 回复 8楼 的帖子

我查了一些,比如这个http://bbs.bathome.net/viewthread.php?tid=487&extra=page%3D1
获取的只是拨号连接的名称。
也看到很多这样的贴:http://bbs.bathome.net/viewthrea ... hlight=%C1%AC%BD%D3
自动创建宽带连接。
是不是批处理不方便达到这个目的,却用vbs模拟按键创建连接的麻烦方法?




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