标题: [网络连接] 获取宽带连接的IP的批处理for语句是怎样工作的? [打印本页]
作者: cl27047 时间: 2011-9-27 14:18 标题: 获取宽带连接的IP的批处理for语句是怎样工作的?
在网上看到一段代码,用来显示本机IP地址的,如下:- @echo off
- title 显示你的IP
- color F9
- ipconfig
- @echo -
- for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "Address"') do set ip=%%i
- @echo ==================[你的IP地址是:%ip%]===============
- @echo -
- Echo 请按任意键关闭窗口! &pause>NUL
复制代码
for /f "tokens=2 delims=:" %i in ('ipconfig^|findstr "Address"') do echo我用ipconfig命令的输出为:
Windows IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.9
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
PPP adapter 宽带连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : ***.228.160.237
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : ***.228.160.237
运行批处理后会显示我的宽带连接的IP。
想请教高手为什么用的tokens=2 tokens=2不是截取第二节的吗?宽带连接ip address好像没有在第二节上呀,望高手能详解,先谢过了!
还有,为什么最后还有一行:
for /f "tokens=2 delims=:" %i in ('ipconfig^|findstr "Address"') do echo
这句有作用的吗???
作者: 601997526 时间: 2011-9-27 15:23
在for语句中tokens=2截取第二节是没错的,但在这里同时也用了delims=:意为以冒号:作为分隔符截取第二节
如 IP Address. . . . . . . . . . . . : 192.168.1.9
以冒号为分隔符,第一节当是 IP Address. . . . . . . . . . . .
第二节为 192.168.1.9
至于最后那一句是多余的,在这里是没什么作用的
作者: cl27047 时间: 2011-9-27 15:33
在for语句中tokens=2截取第二节是没错的,但在这里同时也用了delims=:意为以冒号:作为分隔符截取第二节
如 ...
601997526 发表于 2011-9-27 15:23
可是这段代码运行后会得到下面的外网的ip呀,那个ip应该不是属于第二节的呀???
作者: 601997526 时间: 2011-9-27 16:06
IP Address. . . . . . . . . . . . : 192.168.1.9
IP Address. . . . . . . . . . . . : ***.228.160.237
因为ipconfig|findstr "Address"这句是搜索包涵Address的行,而你这里却显示了两句包涵Address的行,这里自然是以最后的那句为准
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |