Board logo

标题: [网络连接] 【已解决】批处理通过IP前缀获取网卡名 [打印本页]

作者: SeanJuicer    时间: 2024-8-31 03:44     标题: 【已解决】批处理通过IP前缀获取网卡名

之前有通过论坛求助得到了通过给定的网关地址获取对应网卡名的代码,如下:原帖地址
  1. for /f "tokens=1*" %%a in ('ipconfig /all') do (
  2.     if "%%a" equ "以太网适配器" (
  3.         set "AdapterName=%%b"
  4.     ) else if "%%a %%b" equ "默认网关. . . . . . . . . . . . . : %TargetGateway%" (
  5.         goto :TargetGatewayLOOP
  6.     )
  7. )
复制代码
后期使用时发现大型网络中网关是不固定的,跨网段访问很常见,脚本又不合适了。
最近疯狂学习、测试,还是达不到想要的需求,跪求大神再次帮忙。
希望通过给定的IP前缀,如172.5.来获取拥有这个IP地址的网卡名,若能在上面的代码基础上修改,就更好了。
作者: aloha20200628    时间: 2024-8-31 11:39

本帖最后由 aloha20200628 于 2024-8-31 11:42 编辑

回复 1# SeanJuicer

假设源数据某一段落如下:

   ...
以太网适配器 xxx:
   ...
   ... : 172.5...
   ...

则以下代码会获取 ‘以太网适配器’ 其后的 xxx 字段值
  1. @echo off &set "go=1" &for /f "tokens=1,2 delims=:" %%a in (
  2. 'ipconfig /all^|findstr /il /c:"以太网适配器" /c:": 172.5." '
  3. ) do if defined go (
  4. if "%%b"=="" (for /f "tokens=1* delims= " %%x in ("%%a") do set "AdapterName=%%y") else set "go="
  5. )
  6. echo,%AdapterName%&pause&exit/b
复制代码

作者: SeanJuicer    时间: 2024-8-31 15:22

回复 2# aloha20200628


    大佬溜牛啊!




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