濮阳杆衣贸易有限公司

主頁 > 知識庫 > Windows下通過bat獲取網絡連線實際名稱,加強IP類設置腳本的兼容性

Windows下通過bat獲取網絡連線實際名稱,加強IP類設置腳本的兼容性

熱門標簽:電話機器人產品怎么樣 智能打電話機器人收費 雷霆電銷機器人怎么樣 呼倫貝爾外呼系統(tǒng) 如何申請400電話業(yè)務mm 電話機器人全國招商 玉林市機器人外呼系統(tǒng)哪家好 如何弄地圖標注 清遠百度地圖標注店鋪位置

其中比較難解決的問題就是獲取網絡連線的實際名稱,大部分人使用的IP設置腳本都是將【本地連接】寫死在代碼中,可實際上并不是所有電腦都叫本地連接;比如有的用戶電腦可能升級了網卡驅動,或者更換了網卡,導致網絡連線的名稱變成“本地連接2”,又比如有無聊好事者(某產線的作業(yè)員電腦),將網絡連線的名稱各種DIY,我就見過一個修改成"操蛋的青春",瞬間無語!

好了,廢話不多說,直接上菜!


對于網絡連線的實際名稱,可能出現(xiàn)的情況有:
1.網卡更換/驅動升級導致名稱變更,比如本地連接2
2.系統(tǒng)語系不同導致網絡連線名稱也不同,比如簡體叫【本地連線】,而繁體卻叫【區(qū)域連線】
3.系統(tǒng)版本不同,導致命令行顯示也不同,比如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后,得到的是【乙太網路卡 區(qū)域連線:】
2.本地超過一塊網卡的時候應該會出錯(具體未實測)
適用場合:在保證單網卡和XP環(huán)境下可用不區(qū)分簡繁體使用。

二、來個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;然后通過【介面】還是【接口】的區(qū)分,又能兼容簡繁體,所以是通吃代碼!

代碼缺點:暫未實現(xiàn)多網卡的區(qū)分功能,所以雙/多網卡電腦執(zhí)行此腳本,所有網卡均設置成一樣的信息,這很蛋疼!
適用范圍:只要不存在多網卡,均能使用!多網卡慎用哦~!

三、最后,再給個XP環(huán)境下加入了多網卡判斷的獲取連線名稱的腳本吧!
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 發(fā)現(xiàn)多塊網卡,請手動設置...  
     pause>nul  
     goto TCPset  
     )  
for /l %%i in (1 1 %NIC_num%) do echo !NIC_name%%i!>"%~dp0dns.tmp" 
goto :eof 

簡單說明:在代碼一的基礎上加上了網卡數(shù)量的判斷,超過一塊就提示手動設置,避免因多塊網卡設置IP出現(xiàn)問題。

代碼缺點:

1.還是未能解決多塊網卡自動設置IP的情況,請有興趣的筒子參考改進哦!
2.無法兼容WIN7

好了,以上就是獲取實際網絡連線名稱的所有代碼了,希望能幫到有需要的朋友!

您可能感興趣的文章:
  • Windows下將Python文件打包成.EXE可執(zhí)行文件的方法
  • 用node-webkit把web應用打包成桌面應用(windows環(huán)境)
  • Windows下用py2exe將Python程序打包成exe程序的教程
  • windows下定時利用bat腳本實現(xiàn)ftp上傳下載
  • Windows下簡單的Mysql備份BAT腳本分享
  • Windows命令行bat批處理延遲sleep方法(批處理延時)
  • windows7系統(tǒng)去除快捷方式小箭頭BAT腳本分享
  • PHP啟動windows應用程序、執(zhí)行bat批處理、執(zhí)行cmd命令的方法(exec、system函數(shù)詳解)
  • Windows運行bat批處理文件時隱藏cmd命令提示符窗口的方法
  • Windows設置開機自啟動bat腳本
  • 一鍵刪除windows默認共享和禁止空連接的bat代碼
  • Windows程序打包腳本[bat]的詳細流程

標簽:株洲 臺州 樂山 蕪湖 白銀 江西 公主嶺 三門峽

巨人網絡通訊聲明:本文標題《Windows下通過bat獲取網絡連線實際名稱,加強IP類設置腳本的兼容性》,本文關鍵詞  Windows,下,通過,bat,獲取,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Windows下通過bat獲取網絡連線實際名稱,加強IP類設置腳本的兼容性》相關的同類信息!
  • 本頁收集關于Windows下通過bat獲取網絡連線實際名稱,加強IP類設置腳本的兼容性的相關信息資訊供網民參考!
  • 推薦文章
    深水埗区| 泰安市| 甘泉县| 安丘市| 福泉市| 娱乐| 潞城市| 正蓝旗| 开原市| 昆山市| 四平市| 渭源县| 从化市| 扬州市| 义马市| 奉化市| 沙河市| 峨边| 定陶县| 台中市| 岳西县| 西乌珠穆沁旗| 大丰市| 葫芦岛市| 依兰县| 延津县| 安阳市| 安陆市| 乌恰县| 齐河县| 固始县| 珲春市| 克拉玛依市| 固镇县| 新河县| 宜良县| 进贤县| 曲阳县| 海城市| 株洲县| 宜宾县|