• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Windows下通过bat获取网络连线实际名称,加强IP类设置脚本的兼容性

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

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


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

       

    那如果要编写一个通用的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

    简单说明:此代码通过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  
       )  
    )

    简单说明:通过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 

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

    代码缺点:

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

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

    您可能感兴趣的文章:
    • Windows下将Python文件打包成.EXE可执行文件的方法
    • 用node-webkit把web应用打包成桌面应用(windows环境)
    • Windows下用py2exe将Python程序打包成exe程序的教程
    • windows下定时利用bat脚本实现ftp上传下载
    • Windows下简单的Mysql备份BAT脚本分享
    • Windows命令行bat批处理延迟sleep方法(批处理延时)
    • windows7系统去除快捷方式小箭头BAT脚本分享
    • PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
    • Windows运行bat批处理文件时隐藏cmd命令提示符窗口的方法
    • Windows设置开机自启动bat脚本
    • 一键删除windows默认共享和禁止空连接的bat代码
    • Windows程序打包脚本[bat]的详细流程
    上一篇:Ghost安装Win7/XP后自动恢复IP的批处理代码(ip备份恢复)
    下一篇:批处理bat删除指定天数日期之前的文件夹
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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