SunTB編寫IP地址設置切換批處理
2020-06-09 13:50:03
供稿:網友
修正一個提取網絡連接名稱的錯誤,原因在于之前在FOR中使用空格作為分隔符
如果網絡連接名為“本地連接 2”,原來只會識別成“本地連接”,從而導致設置失敗
現已更正
說明:1、可以選擇要設置的網絡連接
2、可以手動設定固定IP,也可以通過DHCP自動獲取
3、可以在批處理中預設多組MAC與IP對應數據,當內網有MAC綁定時可快速查詢相應IP
4、DNS設置提供四類數據(中國電信、 中國聯通/中國網通、中國移動/ 國鐵通、內網網關)
DNS為福州地區數據,請自行更改為當地各寬帶運營商DNS
5、再添加一功能:在設置完畢后可以選擇是否當本機MAC及IP數據添加到本批處理中以便下次自動識別
批處理代碼如下:
代碼如下:
@title IP地址設置切換批處理 By SunTB
@echo off & setlocal enabledelayedexpansion
if exist "%windir%/system32/slmgr.vbs" (
echo.&echo 本批處理在 VISTA 以及 WIN7 中須以管理員身份運行
echo.&echo 請查看批處理窗口標題欄信息開頭是否為“管理員:”
echo.&echo 如符合上述條件可按任意鍵繼續,否則請退出批處理后以管理員身份重新運行
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 請選擇當前本機要設置的網絡鏈接:
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 當前 !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 在批處理數據庫中找到對應數據
echo.&echo IP : !IP!
echo.&echo 子網掩碼 : !MASK!
echo.&echo 網關 : !GATE!
echo.&set /p IP=如需改變 IP 數據請手動輸入并回車,如取默認值請直接回車 :
echo.&set /p MASK=如需改變 子網掩碼 數據請手動輸入并回車,如取默認值請直接回車 :
echo.&set /p GATE=如需改變 網關 數據請手動輸入并回車,如取默認值請直接回車 :
goto :isp
) else (
set inbat=0
echo.&echo 在批處理數據庫中未找到對應 IP ,請手動選擇 IP 設置方式
goto :lan
)
:lan
echo.&echo 當前要設置的網絡鏈接是: