标题: [系统相关] 批处理如何提取连网返回信息? [打印本页]
作者: frybud 时间: 2009-7-7 19:38 标题: 批处理如何提取连网返回信息?
做一个抢IP的程序,因为IP有限,大家都在抢ip。所以拨号的速度最重要,
主要调用rasdial进行宽带连接,问题是如何判断网络已经连接上,而退出循环。
我觉得在循环里加 查看网络连接状况的判断 ,是不是速度会减慢,比如用ping,多了一步判断,应该会影响拨号的速度吧
如何对返回信息进行判断?
比如- rasdial LJ username password
复制代码
(LJ是我宽带连接的名称)
然后,如果没有连接上,
系统会返回一行信息:
734 ppp
:
hh netcfg.chm
734
如果连接上,没加退出条件,循环会继续,返回信息是:
我的问题是如何获取这个返回信息,以用来判断是否连接上网络而退出循环?
作者: keen 时间: 2009-7-7 22:43 标题: 回复 1楼 的帖子
- @echo off
- 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"。自己看下图。- @echo off
- :LJ
- for /f "tokens=2" %%i in ('Rasdial LJ username password') do set "a=%%i"
- if "%a:~0,-1%" neq "LJ" goto LJ
- 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 |