在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
其中比较难解决的问题就是获取网络连线的实际名称,大部分人使用的IP设置脚本都是将【本地连接】写死在代码中,可实际上并不是所有电脑都叫本地连接;比如有的用户电脑可能升级了网卡驱动,或者更换了网卡,导致网络连线的名称变成“本地连接2”,又比如有无聊好事者(某产线的作业员电脑),将网络连线的名称各种DIY,我就见过一个修改成"操蛋的青春",瞬间无语! 好了,废话不多说,直接上菜!
那如果要编写一个通用的IP修改脚本,必须就得考虑到以上1-3条的问题,才能提高兼容性,接近版本/简繁语系通吃!(英文版暂未考虑) 一、先给出一个XP下简繁体通用的获取连线名称的代码 @echo off for /f "tokens=1,2,3 delims=: " %%i in ('ipconfig/all ^|find /i "Ethernet adapter"') do set netname=%%k netsh interface ip set address name="%netname%" source=static addr=192.168.1.105 mask=255.255.254.0 gateway=192.168.1.1 pause 简单说明:此代码通过ipconfig/all获取连线信息,然后抓取Ethernet adapter之后的名称,即%%k为实际连线名称,理论上简繁体通用。 代码缺点: 二、来个XP/WIN7/简繁体通吃的连线名称获取代码(最近才帮维护人员写的,热乎着呢!): rem 以上内容略 for /f tokens^=1^,2^ delims^=^" %%j in ('netsh interface ip show config') do ( if "%%j"=="介面 " ( netsh interface ip set address name="%%k" source=static addr=192.168.1.105 mask=255.255.254.0 gateway=192.168.1.1 ) if "%%j"=="接口 " ( netsh interface ip set address name="%%k" source=static addr=192.168.1.105 mask=255.255.254.0 gateway=192.168.1.1 ) ) 简单说明:通过netsh获取信息,能兼容XP和WIN7;然后通过【介面】还是【接口】的区分,又能兼容简繁体,所以是通吃代码! 代码缺点:暂未实现多网卡的区分功能,所以双/多网卡电脑执行此脚本,所有网卡均设置成一样的信息,这很蛋疼! 三、最后,再给个XP环境下加入了多网卡判断的获取连线名称的脚本吧! rem 请使用call :getnetnme调用此模块,然后从临时文件"%~dp0dns.tmp"中获取连线名称! :getnetname setlocal enabledelayedexpansion set "NIC_flag=Ethernet" set NIC_num=0 for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do ( set /a num+=1 if "%%i"=="%NIC_flag%" ( set /a num_=!num!+3,NIC_num+=1 set NIC_name!Nic_num!=%%k) if !num! EQU !num_! set var=%%l set var=!var:*:=! set Desp!Nic_num!=!var! ) if %NIC_num% gtr 1 ( echo 发现多块网卡,请手动设置... pause>nul goto TCPset ) for /l %%i in (1 1 %NIC_num%) do echo !NIC_name%%i!>"%~dp0dns.tmp" goto :eof 简单说明:在代码一的基础上加上了网卡数量的判断,超过一块就提示手动设置,避免因多块网卡设置IP出现问题。 代码缺点: 1.还是未能解决多块网卡自动设置IP的情况,请有兴趣的筒子参考改进哦! 好了,以上就是获取实际网络连线名称的所有代码了,希望能帮到有需要的朋友! |
请发表评论