标题: [网络连接] 有宽带连接和本地连接时批处理怎样提取本地连接MAC地址? [打印本页]
作者: lx427 时间: 2011-7-7 02:01 标题: 有宽带连接和本地连接时批处理怎样提取本地连接MAC地址?
本人写了一段代码,用来提取MAC地址,但是在有本地连接和宽带连接时,会把本地连接和宽带连接的MAC地址都显示出来- @echo off
- for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do echo %%i
- 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
作者: lxzzr 时间: 2011-7-7 03:47
Wmic NIC Where "NetConnectionID='本地连接'" Get MACAddress
作者: lx427 时间: 2011-7-7 09:21
本帖最后由 lx427 于 2011-7-7 09:23 编辑
2# lxzzr
我觉得这种方法通用性有限,如果本地连接 是名称为 本地连接 2时,就找不到范例,我个人只有一个思路,就是先用ipconfig /all命令取得 以太网连接的名字- for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"') do set Ethernet=%%k
复制代码
然后再根据这个得出来的名称去查找得出MAC地址,由于本人批处理基本功很差,只有思路,代码写作能力差,肯请帮我完善一下。
我所用的批处理完整代码如下,这些代码是我在论坛东拼西凑搞出来的,有的意思我自己都不是很明白,但是可以实际我要的效果
根据MAC地址修改计算机名,IP地址,计算机注释,设置本地连接为自动获取IP地址。
后面依次是计算机名,IP,mac,计算机注释,中间用跳格键隔开。- @echo off
- for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do set mac=%%i
- for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"') do set Ethernet=%%k
- for /f "tokens=1,2" %%i in ('more /e +13 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"
- for /f "tokens=4" %%j in ('more /e +13 %0 ^|find /i "%mac:~,-1%"') do set "p=%%j"
- reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
- reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
- reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
- netsh interface ip set address "%Ethernet:~,-2%" source=dhcp
- netsh interface ip set dns "%Ethernet:~,-2%" source=dhcp
- exit
- lxt 192.168.1.10 00-0b-2f-49-d6-65 梁晓婷
- lyf 192.168.1.11 00-e0-66-02-e8-86 刘扬凤
- lzx 192.168.1.12 00-e0-66-02-f5-4c 刘志仙
- lwt 192.168.1.13 00-e0-66-02-d6-e9 梁文婷
- print 192.168.1.14 00-e0-66-06-07-5d 打印机用
复制代码
作者: fastslz 时间: 2011-7-7 10:01
- Wmic NIC Where "NetConnectionID Like '本地连接%%'" Get MACAddress
复制代码
作者: ygqiang 时间: 2011-7-7 10:30
- ::用ipconfig /all命令获取网卡名称。
- FOR /F "tokens=2*" %%i IN ('ipconfig/all^|find /i "Ethernet adapter "') DO set name=%%j
- ::用for命令删除网卡名称后面的冒号。
- FOR /F "tokens=1* delims=:" %%i in ("%name%") do set a=%%i
复制代码
作者: lxzzr 时间: 2011-7-7 12:46
2# lxzzr
我觉得这种方法通用性有限,如果本地连接 是名称为 本地连接 2时,
你不会将本地连接改为本地连接 2啊
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |