Windows下通過(guò)bat獲取網(wǎng)絡(luò)連線實(shí)際名稱(chēng),加強(qiáng)IP類(lèi)設(shè)置腳本的兼容性
其中比較難解決的問(wèn)題就是獲取網(wǎng)絡(luò)連線的實(shí)際名稱(chēng),大部分人使用的IP設(shè)置腳本都是將【本地連接】寫(xiě)死在代碼中,可實(shí)際上并不是所有電腦都叫本地連接;比如有的用戶電腦可能升級(jí)了網(wǎng)卡驅(qū)動(dòng),或者更換了網(wǎng)卡,導(dǎo)致網(wǎng)絡(luò)連線的名稱(chēng)變成“本地連接2”,又比如有無(wú)聊好事者(某產(chǎn)線的作業(yè)員電腦),將網(wǎng)絡(luò)連線的名稱(chēng)各種DIY,我就見(jiàn)過(guò)一個(gè)修改成"操蛋的青春",瞬間無(wú)語(yǔ)!
好了,廢話不多說(shuō),直接上菜!
對(duì)于網(wǎng)絡(luò)連線的實(shí)際名稱(chēng),可能出現(xiàn)的情況有:
1.網(wǎng)卡更換/驅(qū)動(dòng)升級(jí)導(dǎo)致名稱(chēng)變更,比如本地連接2
2.系統(tǒng)語(yǔ)系不同導(dǎo)致網(wǎng)絡(luò)連線名稱(chēng)也不同,比如簡(jiǎn)體叫【本地連線】,而繁體卻叫【區(qū)域連線】
3.系統(tǒng)版本不同,導(dǎo)致命令行顯示也不同,比如ipconfig/all,簡(jiǎn)體XP中顯示為【Ethernet adapter 本地連接:】,而簡(jiǎn)體WIN7顯示卻是【以太網(wǎng)適配器 本地連接:】
4.其他不可預(yù)料的問(wèn)題
那如果要編寫(xiě)一個(gè)通用的IP修改腳本,必須就得考慮到以上1-3條的問(wèn)題,才能提高兼容性,接近版本/簡(jiǎn)繁語(yǔ)系通吃!(英文版暫未考慮)
(PS:以下代碼只為說(shuō)明獲取名稱(chēng),其他一切從簡(jiǎn)展示):
一、先給出一個(gè)XP下簡(jiǎn)繁體通用的獲取連線名稱(chēng)的代碼
@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
簡(jiǎn)單說(shuō)明:此代碼通過(guò)ipconfig/all獲取連線信息,然后抓取Ethernet adapter之后的名稱(chēng),即%%k為實(shí)際連線名稱(chēng),理論上簡(jiǎn)繁體通用。
代碼缺點(diǎn):
1.不兼容WIN7,win7使用ipconfig/all后,得到的是【乙太網(wǎng)路卡 區(qū)域連線:】
2.本地超過(guò)一塊網(wǎng)卡的時(shí)候應(yīng)該會(huì)出錯(cuò)(具體未實(shí)測(cè))
適用場(chǎng)合:在保證單網(wǎng)卡和XP環(huán)境下可用不區(qū)分簡(jiǎn)繁體使用。
二、來(lái)個(gè)XP/WIN7/簡(jiǎn)繁體通吃的連線名稱(chēng)獲取代碼(最近才幫維護(hù)人員寫(xiě)的,熱乎著呢!):
rem 以上內(nèi)容略
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
)
)
簡(jiǎn)單說(shuō)明:通過(guò)netsh獲取信息,能兼容XP和WIN7;然后通過(guò)【介面】還是【接口】的區(qū)分,又能兼容簡(jiǎn)繁體,所以是通吃代碼!
代碼缺點(diǎn):暫未實(shí)現(xiàn)多網(wǎng)卡的區(qū)分功能,所以雙/多網(wǎng)卡電腦執(zhí)行此腳本,所有網(wǎng)卡均設(shè)置成一樣的信息,這很蛋疼!
適用范圍:只要不存在多網(wǎng)卡,均能使用!多網(wǎng)卡慎用哦~!
三、最后,再給個(gè)XP環(huán)境下加入了多網(wǎng)卡判斷的獲取連線名稱(chēng)的腳本吧!
Ps:或許有筒子可以參考做出全兼容的腳本呢!(俺時(shí)間太緊,就不折騰啦)
rem 請(qǐng)使用call :getnetnme調(diào)用此模塊,然后從臨時(shí)文件"%~dp0dns.tmp"中獲取連線名稱(chēng)!
: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)多塊網(wǎng)卡,請(qǐng)手動(dòng)設(shè)置...
pause>nul
goto TCPset
)
for /l %%i in (1 1 %NIC_num%) do echo !NIC_name%%i!>"%~dp0dns.tmp"
goto :eof
簡(jiǎn)單說(shuō)明:在代碼一的基礎(chǔ)上加上了網(wǎng)卡數(shù)量的判斷,超過(guò)一塊就提示手動(dòng)設(shè)置,避免因多塊網(wǎng)卡設(shè)置IP出現(xiàn)問(wèn)題。
代碼缺點(diǎn):
1.還是未能解決多塊網(wǎng)卡自動(dòng)設(shè)置IP的情況,請(qǐng)有興趣的筒子參考改進(jìn)哦!
2.無(wú)法兼容WIN7
好了,以上就是獲取實(shí)際網(wǎng)絡(luò)連線名稱(chēng)的所有代碼了,希望能幫到有需要的朋友!
上一篇:DOS批處理高級(jí)教程 第二章 DOS循環(huán)for命令詳解
欄 目:DOS/BAT
下一篇:DOS批處理高級(jí)教程 第四章 批處理中的變量
本文標(biāo)題:Windows下通過(guò)bat獲取網(wǎng)絡(luò)連線實(shí)際名稱(chēng),加強(qiáng)IP類(lèi)設(shè)置腳本的兼容性
本文地址:http://www.jygsgssxh.com/a1/DOS_BAT/10075.html
您可能感興趣的文章
- 01-10DOS下查看硬盤(pán)分區(qū)該使用什么命令
- 01-10通過(guò)批處理修改DNS的代碼(推薦)
- 01-10windows使用批處理發(fā)布web到tomcat并啟動(dòng)tomcat腳本分享
- 01-10再談DOS批處理下格式化日期字符串的三種方法(詳解)
- 01-10win7創(chuàng)建wifi熱點(diǎn)腳本分享
- 01-10用批處理一鍵安裝兩種擴(kuò)展名的Windows系統(tǒng)補(bǔ)丁
- 01-10ip地址切換批處理腳本分享
- 01-10Windows設(shè)置開(kāi)機(jī)自啟動(dòng)bat腳本
- 01-10ftp自動(dòng)下載文件腳本分享(ftp命令下載文件)
- 01-10Windows下寫(xiě)一個(gè)文件備份腳本(專(zhuān)用備份的)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10DOS下查看硬盤(pán)分區(qū)該使用什么命令
- 01-10使用批處理實(shí)現(xiàn)軟件的自動(dòng)安裝以安
- 01-10后臺(tái)運(yùn)行bat定時(shí)器程序示例分享
- 01-10通過(guò)批處理修改DNS的代碼(推薦)
- 01-10dota2服務(wù)器ping測(cè)試腳本分享
- 01-10再談DOS批處理下格式化日期字符串的
- 01-10windows使用批處理發(fā)布web到tomcat并啟動(dòng)
- 01-10win7怎么設(shè)定關(guān)閉顯示器時(shí)間
- 01-10屏蔽up鍵禁止游戲運(yùn)行腳本分享
- 01-10win7創(chuàng)建wifi熱點(diǎn)腳本分享
隨機(jī)閱讀
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文


