SunTB編寫IP地址設(shè)置切換批處理
2020-06-09 13:50:03
供稿:網(wǎng)友
修正一個提取網(wǎng)絡(luò)連接名稱的錯誤,原因在于之前在FOR中使用空格作為分隔符
如果網(wǎng)絡(luò)連接名為“本地連接 2”,原來只會識別成“本地連接”,從而導(dǎo)致設(shè)置失敗
現(xiàn)已更正
說明:1、可以選擇要設(shè)置的網(wǎng)絡(luò)連接
2、可以手動設(shè)定固定IP,也可以通過DHCP自動獲取
3、可以在批處理中預(yù)設(shè)多組MAC與IP對應(yīng)數(shù)據(jù),當(dāng)內(nèi)網(wǎng)有MAC綁定時可快速查詢相應(yīng)IP
4、DNS設(shè)置提供四類數(shù)據(jù)(中國電信、 中國聯(lián)通/中國網(wǎng)通、中國移動/ 國鐵通、內(nèi)網(wǎng)網(wǎng)關(guān))
DNS為福州地區(qū)數(shù)據(jù),請自行更改為當(dāng)?shù)馗鲗拵н\(yùn)營商DNS
5、再添加一功能:在設(shè)置完畢后可以選擇是否當(dāng)本機(jī)MAC及IP數(shù)據(jù)添加到本批處理中以便下次自動識別
批處理代碼如下:
代碼如下:
@title IP地址設(shè)置切換批處理 By SunTB
@echo off & setlocal enabledelayedexpansion
if exist "%windir%/system32/slmgr.vbs" (
echo.&echo 本批處理在 VISTA 以及 WIN7 中須以管理員身份運(yùn)行
echo.&echo 請查看批處理窗口標(biāo)題欄信息開頭是否為“管理員:”
echo.&echo 如符合上述條件可按任意鍵繼續(xù),否則請退出批處理后以管理員身份重新運(yùn)行
pause>nul
)
set n=0
for /f "delims=:" %%a in ('ipconfig/all^|findstr /i /b /c:"Ethernet adapter"') do (set /a n=!n!+1&set str=%%a&set net!n!=!str:~17!)
set n=0
for /f "tokens=2 delims=:" %%a in ('ipconfig/all^|findstr /i /c:"Description"') do (set /a n=!n!+1&set netcard!n!=%%a)
set n=0
for /f "tokens=2 delims=:" %%a in ('ipconfig/all^|findstr /i /c:"Physical Address"') do (set /a n=!n!+1&set MAC!n!=%%a)
:net
echo.&echo 請選擇當(dāng)前本機(jī)要設(shè)置的網(wǎng)絡(luò)鏈接:
for /l %%a in (1,1,!n!) do (
echo.
echo %%a - !net%%a! - !netcard%%a!
echo MAC 地址:!MAC%%a!
)
echo.&set num=&set /p num=請輸入序號并回車加以選擇:
cls
if defined net%num% (set NET=!net%num%!&set MAC=!MAC%num%: =!&set MAC=!MAC:~0,17!) else (echo.&echo 輸入的序號有誤,請重新選擇!&goto :net)
:lib
set MASK=255.255.255.0
set GATE=192.168.0.1
cls&echo.&echo 當(dāng)前 !NET! 的 MAC 為 !MAC!
for /f "tokens=2 delims=[]" %%a in ('findstr /i "!MAC!" %0') do set IP=%%a
if defined IP (
set inbat=1
echo.&echo 在批處理數(shù)據(jù)庫中找到對應(yīng)數(shù)據(jù)
echo.&echo IP : !IP!
echo.&echo 子網(wǎng)掩碼 : !MASK!
echo.&echo 網(wǎng)關(guān) : !GATE!
echo.&set /p IP=如需改變 IP 數(shù)據(jù)請手動輸入并回車,如取默認(rèn)值請直接回車 :
echo.&set /p MASK=如需改變 子網(wǎng)掩碼 數(shù)據(jù)請手動輸入并回車,如取默認(rèn)值請直接回車 :
echo.&set /p GATE=如需改變 網(wǎng)關(guān) 數(shù)據(jù)請手動輸入并回車,如取默認(rèn)值請直接回車 :
goto :isp
) else (
set inbat=0
echo.&echo 在批處理數(shù)據(jù)庫中未找到對應(yīng) IP ,請手動選擇 IP 設(shè)置方式
goto :lan
)
:lan
echo.&echo 當(dāng)前要設(shè)置的網(wǎng)絡(luò)鏈接是: