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

[网络连接] 有宽带连接和本地连接时批处理怎样提取本地连接MAC地址?

[复制链接]
发表于 2011-7-7 02:01:33 | 显示全部楼层 |阅读模式
本人写了一段代码,用来提取MAC地址,但是在有本地连接和宽带连接时,会把本地连接和宽带连接的MAC地址都显示出来

  1. @echo off
  2. for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do echo %%i
  3. pause
复制代码
以下是运行ipconfig /all命令得到的内容,请问该如何改写上面的代码,才能得到我只想要的本地连接的MAC地址?

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

Windows IP Configuration

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

Ethernet adapter 本地连接 2:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : NVIDIA nForce 10/100 Mbps Ethernet
        Physical Address. . . . . . . . . : 00-E0-4C-41-11-A6
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.16.21
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.16.1
        DNS Servers . . . . . . . . . . . : 192.168.16.1
                                            192.168.10.220

PPP adapter 宽带连接:

        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : WAN (PPP/SLIP) Interface
        Physical Address. . . . . . . . . : 00-53-45-00-00-00
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 183.2.222.4
        Subnet Mask . . . . . . . . . . . : 255.255.255.255
        Default Gateway . . . . . . . . . : 183.2.222.4
        DNS Servers . . . . . . . . . . . : 202.96.128.86
                                            202.96.134.33
        NetBIOS over Tcpip. . . . . . . . : Disabled
发表于 2011-7-7 03:47:24 | 显示全部楼层
Wmic NIC Where "NetConnectionID='本地连接'" Get MACAddress
 楼主| 发表于 2011-7-7 09:21:14 | 显示全部楼层
本帖最后由 lx427 于 2011-7-7 09:23 编辑

2# lxzzr

我觉得这种方法通用性有限,如果本地连接 是名称为  本地连接 2时,就找不到范例,我个人只有一个思路,就是先用ipconfig /all命令取得 以太网连接的名字

  1. for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"')  do set Ethernet=%%k
复制代码
然后再根据这个得出来的名称去查找得出MAC地址,由于本人批处理基本功很差,只有思路,代码写作能力差,肯请帮我完善一下。

我所用的批处理完整代码如下,这些代码是我在论坛东拼西凑搞出来的,有的意思我自己都不是很明白,但是可以实际我要的效果
根据MAC地址修改计算机名,IP地址,计算机注释,设置本地连接为自动获取IP地址。
后面依次是计算机名,IP,mac,计算机注释,中间用跳格键隔开。

  1. @echo off
  2. for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do set mac=%%i
  3. for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"')  do set Ethernet=%%k
  4. for /f "tokens=1,2" %%i in ('more /e +13 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"
  5. for /f "tokens=4" %%j in ('more /e +13 %0 ^|find /i "%mac:~,-1%"') do set "p=%%j"
  6. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  7. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
  8. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  9. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
  10. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
  11. netsh interface ip set address "%Ethernet:~,-2%"  source=dhcp
  12. netsh interface ip set dns "%Ethernet:~,-2%" source=dhcp
  13. exit
  14. lxt        192.168.1.10        00-0b-2f-49-d6-65        梁晓婷
  15. lyf        192.168.1.11        00-e0-66-02-e8-86        刘扬凤
  16. lzx        192.168.1.12        00-e0-66-02-f5-4c        刘志仙
  17. lwt        192.168.1.13        00-e0-66-02-d6-e9        梁文婷
  18. print        192.168.1.14        00-e0-66-06-07-5d        打印机用
复制代码
发表于 2011-7-7 10:01:39 | 显示全部楼层
  1. Wmic NIC Where "NetConnectionID Like '本地连接%%'" Get MACAddress
复制代码

评分

参与人数 1技术 +1 收起 理由
ArdentMan + 1 学习了

查看全部评分

发表于 2011-7-7 10:30:27 | 显示全部楼层


  1. ::用ipconfig /all命令获取网卡名称。
  2. FOR /F "tokens=2*" %%i IN ('ipconfig/all^|find /i "Ethernet adapter "') DO set name=%%j
  3. ::用for命令删除网卡名称后面的冒号。
  4. FOR /F "tokens=1* delims=:" %%i in ("%name%") do set a=%%i

复制代码
发表于 2011-7-7 12:46:22 | 显示全部楼层
2# lxzzr

我觉得这种方法通用性有限,如果本地连接 是名称为  本地连接 2时,


你不会将本地连接改为本地连接 2啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 15:32 , Processed in 0.021145 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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