• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >DOS/BAT > Windows下通过bat获取网络连线实际名称,加强IP类设置脚本的兼容性

Windows下通过bat获取网络连线实际名称,加强IP类设置脚本的兼容性

作者:mdxy-dxy 字体:[增加 减小] 来源:互联网

mdxy-dxy 通过本文主要向大家介绍了windows bat脚本,windows定时执行bat,windows bat语法,windows bat,windows垃圾清理bat等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

其中比较难解决的问题就是获取网络连线的实际名称,大部分人使用的IP设置脚本都是将【本地连接】写死在代码中,可实际上并不是所有电脑都叫本地连接;比如有的用户电脑可能升级了网卡驱动,或者更换了网卡,导致网络连线的名称变成“本地连接2”,又比如有无聊好事者(某产线的作业员电脑),将网络连线的名称各种DIY,我就见过一个修改成"操蛋的青春",瞬间无语!

好了,废话不多说,直接上菜!


对于网络连线的实际名称,可能出现的情况有:
1.网卡更换/驱动升级导致名称变更,比如本地连接2
2.系统语系不同导致网络连线名称也不同,比如简体叫【本地连线】,而繁体却叫【區域連線】
3.系统版本不同,导致命令行显示也不同,比如ipconfig/all,简体XP中显示为【Ethernet adapter 本地连接:】,而简体WIN7显示却是【以太网适配器 本地连接:】
4.其他不可预料的问题

Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性   

Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性

那如果要编写一个通用的IP修改脚本,必须就得考虑到以上1-3条的问题,才能提高兼容性,接近版本/简繁语系通吃!(英文版暂未考虑)
(PS:以下代码只为说明获取名称,其他一切从简展示):

一、先给出一个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
</div>

简单说明:此代码通过ipconfig/all获取连线信息,然后抓取Ethernet adapter之后的名称,即%%k为实际连线名称,理论上简繁体通用。

代码缺点:
1.不兼容WIN7,win7使用ipconfig/all后,得到的是【乙太網路卡 區域連線:】
2.本地超过一块网卡的时候应该会出错(具体未实测)
适用场合:在保证单网卡和XP环境下可用不区分简繁体使用。

二、来个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  
   )  
)
</div>

简单说明:通过netsh获取信息,能兼容XP和WIN7;然后通过【介面】还是【接口】的区分,又能兼容简繁体,所以是通吃代码!

代码缺点:暂未实现多网卡的区分功能,所以双/多网卡电脑执行此脚本,所有网卡均设置成一样的信息,这很蛋疼!
适用范围:只要不存在多网卡,均能使用!多网卡慎用哦~!

三、最后,再给个XP环境下加入了多网卡判断的获取连线名称的脚本吧!
Ps:或许有筒子可以参考做出全兼容的脚本呢!(俺时间太紧,就不折腾啦)

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 
</div>

简单说明:在代码一的基础上加上了网卡数量的判断,超过一块就提示手动设置,避免因多块网卡设置IP出现问题。

代码缺点:

1.还是未能解决多块网卡自动设置IP的情况,请有兴趣的筒子参考改进哦!
2.无法兼容WIN7

好了,以上就是获取实际网络连线名称的所有代码了,希望能帮到有需要的朋友!

</div>

您可能想查找下面的文章:

  • Windows下通过bat获取网络连线实际名称,加强IP类设置脚本的兼容性
  • Windows命令行bat批处理延迟sleep方法(批处理延时)
  • Windows下bat批处理脚本使用telnet批量检测远程端口小记
  • Windows使用bat批处理实现守护进程脚本分享
  • Windows系统清理QQ聊天记录、反监控QQ聊天的BAT脚本分享
  • bat脚本显示本机IP地址的两种方法(内网ip)
  • BAT脚本编写教程(比较易懂和全面)
  • Windows设置开机自启动bat脚本
  • bat 选项之修改ip的脚本代码(让用户可以选择操作并进行判断执行)
  • 将bat文件注册为windows系统服务的方法

相关文章

  • BAT 特殊符号总结
  • 批处理文件制作实例精彩教程第1/5页
  • 设置高级NTFS权限的工具 XCACLS.vbs
  • 注册表危险组件删除功能批处理
  • CMD下一个命令遍历目录并删除相同文件的代码
  • 分享dos批处理命令的一些使用技巧(截取字符串)
  • 迁移图片目录的bat代码
  • NTRights 命令行(DOS)修改用户权限功能详细说明
  • 实现FTP整站上传的批处理代码
  • Msd、Undelete命令的使用方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Ver、Vol、Ctty命令的使用教程
    • DOS快速入门法
    • 显示随机的5个数
    • 恢复主引导分区
    • bat 传递超过10个参数的情况
    • 查看网关的MAC地址的批处理文件
    • 安全工具netsh IPSec使用方法[ip安全策略]
    • Windows系统清理QQ聊天记录、反监控QQ聊天的BAT脚本分享
    • 写了个Vista的服务优化脚本
    • 把文件名当中含有特殊字符[.\]的文件删除的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有