找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27867|回复: 5

[文本处理] 如何用findstr从ipconfig /all结果中定位到指定的网卡/适配器/网络连接提取ip地址

[复制链接]
发表于 2017-6-27 19:15:02 | 显示全部楼层 |阅读模式
findstr的使用方法,求助
电脑ipconfig /all的结果

根据这个帖子:http://bbs.bathome.net/viewthread.php?tid=32287&highlight=MAC
为了xp和win7系统都能获取到IP和MAC地址,修改的代码:
@echo off
set "wkmza=Ethernet adapter 本地连接"
set "wkmzb=以太网适配器 本地连接"
set "FileTmp=%temp%\ipList.txt"
ipconfig /all >"%FileTmp%"
for /f "delims=:" %%i in ('findstr /n "%wkmza% %wkmzb%" "%FileTmp%"') do (
    set "SkipRow=%%i"
    goto oSkip
)

:DoSkip
for /f "tokens=2 delims=:" %%i in ('more +%SkipRow% "%FileTmp%" ^| findstr /i /r "IPv4.地址 IP.Address"') do (set "IP=%%i")
for /f "tokens=2 delims=:" %%i in ('more +%SkipRow% "%FileTmp%" ^| findstr "..-..-..-..-..-.."') do (
    set "MAC=%%i"
    goto :ShowResult
)

:ShowResult
set "MAC=%MAC: =%"
set "IP=%IP: =%"
echo,IP地址:%IP首选)=%
echo,MAC地址:%MAC:-=%
pause


获取结果:
IP地址:192.168.164.1
MAC地址:4439C4526847

正确的结果IP地址应该是192.168.0.16
标红的代码改成for /f "delims=:" %%i in ('findstr /n /c:"%wkmzb%" "%FileTmp%"') do (
也是一样的结果
这是为什么会得出这样错误的结果?
发表于 2017-6-27 20:02:29 | 显示全部楼层
你的几块网卡都有地址,他们前面的标志都是一样的,物理地址和 IPv4 地址 ,电脑不是你肚里的虫,不知道你的心思的,它只会在你给定的条件里发现相关数据,因为用了for,会对数据一直分析到最后。所以,不是你想要的结果。
 楼主| 发表于 2017-6-27 20:35:04 | 显示全部楼层
回复 2# hlzj88

谢谢帮助,为什么那个MAC地址就是对的呢?
 楼主| 发表于 2017-6-28 17:43:12 | 显示全部楼层
本帖最后由 dmxiaoma 于 2017-6-28 17:45 编辑

回复 2# hlzj88

我按你提示改了下代码,现在可以用了。
再请教个问题用findstr多条件查找时要怎么写代码?
比如条件1是tj1 条件2是tj2
我要找满足条件1 或条件2 的是下面这样写么?
findstr /i "%tj1% %tj2%" "a.txt"'
要同时满足条件1和条件2 呢,怎么写代码?

还有原代码中用了/c参数是因为条件是有空格的字符串是吧?我现在没用这参数会不会对结果有影响?
发表于 2017-6-28 19:57:08 | 显示全部楼层
回复 4# dmxiaoma
  1. findstr /i "%tj1%" "a.txt" | findstr /i "%tj2%"
复制代码
发表于 2017-6-28 19:59:59 | 显示全部楼层
我所知道的用法是
  1. findstr /i "tj1" a.txt|findstr /i "tj2">>3.txt
复制代码
如这样的例子。
在找到tj1时传递用来发现tj2,满足条件写入文本。即一句话里同时存在两个关键词。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 01:42 , Processed in 0.019255 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表