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

[网络连接] 批处理通过IP前缀获取网卡名

本帖最后由 SeanJuicer 于 2024-12-25 10:40 编辑

之前有通过论坛求助得到了通过给定的网关地址获取对应网卡名的代码,如下:原帖地址
  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地址的网卡名,若能在上面的代码基础上修改,就更好了。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 aloha20200628 于 2024-12-25 13:43 编辑

回复 4# SeanJuicer
试试以下代码,改用获取 ‘适配器’ 段落下的 ‘描述’ 值作为网卡名称(须楼主认可)...
  1. @echo off &set "ok=" &set "An=" &set "ip=172.5." &setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('ipconfig /all^|findstr /i /c:"描述" /c:"%ip%" ') do (
  3.    set "a=%%a" &if "!a:描述=!" neq "!a!" set "An=!a:*:=!"
  4.    if "!a:*%ip%=!" neq "!a!" set "ok=1" &goto :got)
  5. :got
  6. if defined ok if defined An (set "An=!An:~1!" &echo,!An!)
  7. pause&exit/b
复制代码

TOP

回复 2# aloha20200628


    你好,出现了新的问题了,如果有蓝牙适配器,输出的网卡名称就不正常了

TOP

回复 2# aloha20200628


    大佬溜牛啊!

TOP

本帖最后由 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
复制代码
1

评分人数

TOP

返回列表