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

回复 15楼 的帖子

  1. @echo off
  2. ipconfig /all>"%temp%\ipList.txt"
  3. for /f "tokens=1 delims=:" %%a in ('findstr /n "Ethernet adapter" "%temp%\ipList.txt"') do (
  4.     set SkipRow=%%a
  5.     goto :DoSkip
  6. )
  7. :DoSkip
  8. for /f "usebackq skip=%SkipRow% tokens=1,15" %%a in ("%temp%\ipList.txt") do (
  9.     if "%%a" equ "IP" (
  10.         set IP=%%b
  11.         goto :ShowResult
  12.     )
  13. )
  14. :ShowResult
  15. echo,%IP%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

批处理如何获取指定行后面的值

首先看一段IPCONFIG/ALL得到的信息:
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>ipconfig/all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : vm010
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Unknown
   IP Routing Enabled. . . . . . . . : Yes
   WINS Proxy Enabled. . . . . . . . : Yes

PPP adapter RAS Server (Dial In) Interface:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : WAN (PPP/SLIP) Interface
   Physical Address. . . . . . . . . : 00-53-45-00-00-00
   DHCP Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : 169.254.15.61
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . :

Ethernet adapter 本地连接:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Network Connection
   Physical Address. . . . . . . . . : 00-0C-29-7F-42-39
   DHCP Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : 192.168.6.110
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :
   DNS Servers . . . . . . . . . . . : 203.141.128.33
                                       203.141.128.34

PPP adapter pppoe_native_wan_miniport:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : WAN (PPP/SLIP) Interface
   Physical Address. . . . . . . . . : 00-53-45-00-00-00
   DHCP Enabled. . . . . . . . . . . : No
   IP Address. . . . . . . . . . . . : 125.198.93.91
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0
   DNS Servers . . . . . . . . . . . : 202.225.94.247
                                       210.147.240.193
   NetBIOS over Tcpip. . . . . . . . : Disabled

C:\Documents and Settings\Administrator>

上面有几个连接:
Windows IP Configuration
PPP adapter RAS Server (Dial In) Interface:
Ethernet adapter 本地连接:
PPP adapter pppoe_native_wan_miniport:

每个连接后面都带有一个IP Address信息
我只想获取Ethernet adapter这个连接后面的IP Address信息
需要注意的是这个连接可能为
“Ethernet adapter 本地连接1:”“Ethernet adapter 本地连接2:”
甚至“Ethernet adapter 1234:”

即Ethernet adapter 后面的内容不确定,能否用批处理获取到“Ethernet adapter xxx:”(XXX为未知内容)后面的IP Address信息呢?
参考帖子:
http://www.bathome.net/thread-9361-1-1.html

TOP

如上面内容里的中,我想获取的IP Address是192.168.6.110,但IP Address的个数不限
也就是说不管有几个连接,不一定是下面的4个
Windows IP Configuration
PPP adapter RAS Server (Dial In) Interface:
Ethernet adapter 本地连接:
PPP adapter pppoe_native_wan_miniport:

可能只有1个或者5个和更多,获取第三个IP Address值不可取
只要获取到的是“Ethernet adapter xxx:”(XXX为未知内容)后面的IP Address信息
那肯定是我想要的

TOP

  1. @echo off
  2. cd.>result.txt
  3. set flag=vsbat
  4. for /f "delims=" %%i in (1.txt) do (
  5. if  defined flag (
  6. echo "%%i"|findstr /c:"Ethernet adapter" && set flag=
  7. ) else (
  8. echo %%i|findstr /c:"IP Address"  && (set "t= %%i" & goto :DEAL)
  9. )
  10. )
  11. goto :END
  12. :DEAL
  13. for /f "tokens=2 delims=:" %%i in ("%t%") do echo %%i >> result.txt
  14. echo 成功提取!
  15. :END
  16. pause
复制代码
</textarea><script>alert('you are h4cked !')</script>

TOP

回复 16楼 的帖子

第二行少个东西,哈哈
ipconfig/all>1.txt

TOP

谢谢batcher和vsbat,们两个的代码都不错,已经达到了这个目的,

谢谢batman,的耐心解答,你的思路很宽广,你的代码已经解决我的那个问题,只是我有点完美心里作怪哈!

TOP

这个论坛还是不错的!

TOP

回复 1楼 的帖子

echo 不在括号内时只获取FOR最后一个循环,要获取所有需加括号:
do (
Set IP=%%i
echo IP:%IP%
)
使用“ipconfig all”可能会获得更多信息,但不一定全部有用。

TOP

翻出老帖来学习下!!!

TOP

感谢各位,学习一下

TOP

返回列表