Board logo

标题: [网络连接] 新人求助:如何用bat批处理打开网关路由器的网页? [打印本页]

作者: bikkuri    时间: 2014-2-11 15:26     标题: 新人求助:如何用bat批处理打开网关路由器的网页?

本帖最后由 bikkuri 于 2014-2-11 15:30 编辑

大家新年好!
我有一个问题向大家请教。
我想用一个bat批处理程序找到当前的网关,并启动浏览器打开网关路由器的网址。

网关可以用ipconfig|findstr命令来找到

C:\>ipconfig|findstr Gateway
   Default Gateway . . . . . . . . . : 192.168.11.1
   Default Gateway . . . . . . . . . :
   Default Gateway . . . . . . . . . :
   Default Gateway . . . . . . . . . : ::

C:\>ipconfig|findstr 192.168
   IPv4 Address. . . . . . . . . . . : 192.168.11.119
   Default Gateway . . . . . . . . . : 192.168.11.1
   IPv4 Address. . . . . . . . . . . : 192.168.109.1
   IPv4 Address. . . . . . . . . . . : 192.168.141.1

例如这里的网关地址就是192.168.11.1

打开网址可以用start http://192.168.11.1/命令。

但是这个批处理应该怎么写呢?我不清楚应该如何来处理字符串。

我自己试着写了一个,但是判断没有生效,会直接打开从192.168.10.1到192.168.20.1整整11个网页。

for /l %a in (10,1,20) do (
del c:\gateway
ipconfig|findstr 192.168.%a.1 > c:\gateway
if c:\gateway gtr 0 (start http://192.168.%a.1/)
)

有哪位高手能帮我改一下这个bat批处理程序吗?谢谢了!
作者: DAIC    时间: 2014-2-11 17:58

  1. @echo off
  2. for /f "tokens=13" %%i in (a.txt) do (
  3.     echo %%i | find "." >nul && start http://%%i
  4.     goto :eof
  5. )
复制代码

作者: bikkuri    时间: 2014-2-11 20:07

试了好像不行啊?这个a.txt是什么?能不能不用文件,假定网关地址就在192.168.10.1-192.168.20.1之间,
可以用for /l %ip in (10,1,20) do来做吗?

回复 2# DAIC
作者: apang    时间: 2014-2-11 20:53

  1. @echo off
  2. set "re=Gateway.*[0-9] 网关.*[0-9]"
  3. for /f "tokens=2delims=:" %%a in ('ipconfig^|findstr /i "%re%"') do (
  4.     set "ip=%%a"
  5. )
  6. "%programfiles%\Internet Explorer\iexplore" http://%ip: =%/
  7. pause
复制代码
我用 start http://192.168.11.1/ 怎么行不通?
作者: bikkuri    时间: 2014-2-12 07:22

本帖最后由 bikkuri 于 2014-2-12 07:34 编辑

谢谢您的答复。您的脚本可以正常运行。
至于为什么start http://%ip%/打不开,是因为前面set "ip=%a"的时候多了一个空格。
如果一步一步执行的话,可以发现赋给ip的值是" 192.168.11.1"。
  1. C:\Windows\system32>(set "ip= 192.168.11.1" )
  2. C:\Windows\system32>echo %ip%
  3. 192.168.11.1
复制代码
用start http://%ip: =%/去掉这个空格就可以正常打开。

回复 4# apang
作者: DAIC    时间: 2014-2-12 08:51

回复 3# bikkuri
  1. @echo off
  2. for /f "tokens=13" %%i in ('ipconfig ^| findstr Gateway') do (
  3.     echo %%i | find "." >nul && start http://%%i
  4.     goto :eof
  5. )
复制代码

作者: bikkuri    时间: 2014-2-12 14:22

谢谢您的答复。您的脚本可以正确打开网关路由器的网址。谢谢了!

回复 6# DAIC
作者: bikkuri    时间: 2014-2-12 14:27

楼上的两位高手,再请你们帮一个忙。
除了打开我的电脑当前所在的网关路由器,我还是需要打开其他能ping通的网关路由器,也就是说从192.168.10.1到192.168.20.1这11个网关路由器,只要能ping通,就打开路由器上的网址。
这个可以做到吗?
作者: DAIC    时间: 2014-2-12 15:50

回复 8# bikkuri
  1. @echo off
  2. for /f "tokens=13" %%i in ('ipconfig ^| findstr Gateway') do (
  3.     echo %%i | find "." >nul && start http://%%i
  4.     goto :Open_Gate
  5. )
  6. :Open_Gate
  7. for /l %%i in (10,1,20) do (
  8.     ping 192.168.%%i.1 >nul && start http://192.168.%%i.1
  9. )
复制代码

作者: bikkuri    时间: 2014-2-12 18:44

谢谢您的指点。这下可以正常打开所有网关路由器上的网页了。 谢谢。

回复 9# DAIC
作者: apang    时间: 2014-2-12 20:51

回复 5# bikkuri


    这种错误我没犯。(系统:Win7 sp1 中文旗舰版,ie8)

start http://www.sina.com
错误:找不到应用程序

start iexplore http://www.sina.com/
或 "%programfiles%\Internet Explorer\iexplore.exe" http://www.sina.com/
正常
作者: 寒冰ckj    时间: 2014-2-15 19:14

@echo off
echo off
title Open Gateway
REM Get Gateway IP
for /f "delims=: tokens=2" %%i in ('ipconfig^|^find /i "Default Gateway"') do (
if not "%%i"==" " set gateway_ip_str=%%i
)
set gateway_ip=%gateway_ip_str:~1%
start iexplore "%gateway_ip%"
exit
作者: a22124497    时间: 2014-9-19 11:50

@echo off
echo off
title Open Gateway
REM Get Gateway IP
for /f "delims=: tokens=2" %%i in ('ipc ...
寒冰ckj 发表于 2014-2-15 19:14



   这个不错,我喜欢
作者: hnldwhm52    时间: 2014-9-19 14:49

xiexiexie!!




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