[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 获取宽带连接的IP的批处理for语句是怎样工作的?

在网上看到一段代码,用来显示本机IP地址的,如下:
  1. @echo off
  2. title 显示你的IP
  3. color F9
  4. ipconfig
  5. @echo -
  6. for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "Address"') do set ip=%%i
  7. @echo ==================[你的IP地址是:%ip%]===============
  8. @echo -
  9. 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

这句有作用的吗???

在for语句中tokens=2截取第二节是没错的,但在这里同时也用了delims=:意为以冒号:作为分隔符截取第二节
如 IP Address. . . . . . . . . . . . : 192.168.1.9
以冒号为分隔符,第一节当是 IP Address. . . . . . . . . . . .
第二节为 192.168.1.9
至于最后那一句是多余的,在这里是没什么作用的

TOP

在for语句中tokens=2截取第二节是没错的,但在这里同时也用了delims=:意为以冒号:作为分隔符截取第二节
如 ...
601997526 发表于 2011-9-27 15:23



    可是这段代码运行后会得到下面的外网的ip呀,那个ip应该不是属于第二节的呀???

TOP

IP Address. . . . . . . . . . . . : 192.168.1.9
IP Address. . . . . . . . . . . . : ***.228.160.237
因为ipconfig|findstr "Address"这句是搜索包涵Address的行,而你这里却显示了两句包涵Address的行,这里自然是以最后的那句为准

TOP

返回列表