溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何編寫(xiě)IP地址設(shè)置切換批處理

發(fā)布時(shí)間:2021-10-08 10:54:50 來(lái)源:億速云 閱讀:125 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了如何編寫(xiě)IP地址設(shè)置切換批處理,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

修正一個(gè)提取網(wǎng)絡(luò)連接名稱(chēng)的錯(cuò)誤,原因在于之前在FOR中使用空格作為分隔符
如果網(wǎng)絡(luò)連接名為“本地連接 2”,原來(lái)只會(huì)識(shí)別成“本地連接”,從而導(dǎo)致設(shè)置失敗
現(xiàn)已更正

說(shuō)明:1、可以選擇要設(shè)置的網(wǎng)絡(luò)連接
2、可以手動(dòng)設(shè)定固定IP,也可以通過(guò)DHCP自動(dòng)獲取
3、可以在批處理中預(yù)設(shè)多組MAC與IP對(duì)應(yīng)數(shù)據(jù),當(dāng)內(nèi)網(wǎng)有MAC綁定時(shí)可快速查詢(xún)相應(yīng)IP
4、DNS設(shè)置提供四類(lèi)數(shù)據(jù)(中國(guó)電信、 中國(guó)聯(lián)通/中國(guó)網(wǎng)通、中國(guó)移動(dòng)/ 國(guó)鐵通、內(nèi)網(wǎng)網(wǎng)關(guān))
DNS為福州地區(qū)數(shù)據(jù),請(qǐng)自行更改為當(dāng)?shù)馗鲗拵н\(yùn)營(yíng)商DNS
5、再添加一功能:在設(shè)置完畢后可以選擇是否當(dāng)本機(jī)MAC及IP數(shù)據(jù)添加到本批處理中以便下次自動(dòng)識(shí)別

批處理代碼如下:

代碼如下:


@title IP地址設(shè)置切換批處理 

@echo off & setlocal enabledelayedexpansion

if exist "%windir%\system32\slmgr.vbs" (
echo.&echo 本批處理在 VISTA 以及 WIN7 中須以管理員身份運(yùn)行
echo.&echo 請(qǐng)查看批處理窗口標(biāo)題欄信息開(kāi)頭是否為“管理員:”
echo.&echo 如符合上述條件可按任意鍵繼續(xù),否則請(qǐng)退出批處理后以管理員身份重新運(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 請(qǐng)選擇當(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=請(qǐng)輸入序號(hào)并回車(chē)加以選擇:
cls
if defined net%num% (set NET=!net%num%!&set MAC=!MAC%num%: =!&set MAC=!MAC:~0,17!) else (echo.&echo 輸入的序號(hào)有誤,請(qǐng)重新選擇!&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ù)庫(kù)中找到對(duì)應(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ù)請(qǐng)手動(dòng)輸入并回車(chē),如取默認(rèn)值請(qǐng)直接回車(chē) :
echo.&set /p MASK=如需改變 子網(wǎng)掩碼 數(shù)據(jù)請(qǐng)手動(dòng)輸入并回車(chē),如取默認(rèn)值請(qǐng)直接回車(chē) :
echo.&set /p GATE=如需改變 網(wǎng)關(guān) 數(shù)據(jù)請(qǐng)手動(dòng)輸入并回車(chē),如取默認(rèn)值請(qǐng)直接回車(chē) :
goto :isp
) else (
set inbat=0
echo.&echo 在批處理數(shù)據(jù)庫(kù)中未找到對(duì)應(yīng) IP ,請(qǐng)手動(dòng)選擇 IP 設(shè)置方式
goto :lan
)

:lan
echo.&echo 當(dāng)前要設(shè)置的網(wǎng)絡(luò)鏈接是:
echo.&echo !NET! - !netcard%num%!
echo.&echo 請(qǐng)選擇 IP 設(shè)置方式:
echo.&echo 1 - 手動(dòng)設(shè)定固定 IP
echo.&echo 2 - DHCP 自動(dòng)獲取
echo.&set choose=&set /p choose=請(qǐng)輸入序號(hào)并回車(chē)加以選擇:
cls
if %choose% equ 1 goto :set
if %choose% equ 2 goto :dhcp
echo.&echo 輸入的序號(hào)有誤,請(qǐng)重新選擇!&goto :lan

:set
set IP=192.168.0.9
cls&echo.&echo 默認(rèn) IP 為 !IP! ,如需改變請(qǐng)手動(dòng)輸入并回車(chē),如取默認(rèn)值請(qǐng)直接回車(chē):
echo.&set /p IP=
cls&echo.&echo 默認(rèn)子網(wǎng)掩碼為 !MASK! ,如需改變請(qǐng)手動(dòng)輸入并回車(chē),如取默認(rèn)值請(qǐng)直接回車(chē):
echo.&set /p MASK=
cls&echo.&echo 默認(rèn)網(wǎng)關(guān)為 !GATE! ,如需改變請(qǐng)手動(dòng)輸入并回車(chē),如取默認(rèn)值請(qǐng)直接回車(chē):
echo.&set /p GATE=
:isp
cls&echo.&echo 請(qǐng)選擇寬帶線路對(duì)應(yīng) DNS (福州地區(qū)):
echo.&echo 1 - 中國(guó)電信
echo.&echo 2 - 中國(guó)聯(lián)通 / 中國(guó)網(wǎng)通
echo.&echo 3 - 中國(guó)移動(dòng) / 中國(guó)鐵通
echo.&echo 4 - 內(nèi)網(wǎng)網(wǎng)關(guān)%GATE%
echo.&set isp=&set /p isp=請(qǐng)輸入序號(hào)并回車(chē)加以選擇:
if %isp% equ 1 (call :10000&goto :doset)
if %isp% equ 2 (call :10010&goto :doset)
if %isp% equ 3 (call :10086&goto :doset)
if %isp% equ 4 (set DNS1=%GATE%&goto :doset)
echo.&echo 輸入的序號(hào)有誤,請(qǐng)重新選擇!&goto :isp
:doset
cls&echo.&echo 正在設(shè)置 %NET% ,IP 地址為 %IP%,請(qǐng)稍候...
netsh interface ip set address name="%NET%" static %IP% %MASK% %GATE% 1 >nul
netsh interface ip set dns name="%NET%" static %DNS1% >nul
if defined DNS2 netsh interface ip add dns name="%NET%" %DNS2% 2 >nul
goto :end

:dhcp
cls&echo.&echo 正在設(shè)置 %NET% ,自動(dòng)獲取 IP 及 DNS ,請(qǐng)稍候...
netsh interface ip set address name="%NET%" DHCP >nul 2>nul
netsh interface ip set dns name="%NET%" DHCP >nul 2>nul
goto :end

:end
cls
ipconfig/all
echo.&echo 設(shè)置完畢,當(dāng)前 IP 信息如上,請(qǐng)仔細(xì)查看
if !inbat! equ 0 (
echo.&echo 輸入 Y 并回車(chē)可將本機(jī) MAC 及 IP 數(shù)據(jù)添加到本批處理中以便下次自動(dòng)識(shí)別
echo.&set /p addbat=若不添加數(shù)據(jù)請(qǐng)直接回車(chē)退出:
if /i !addbat! equ Y echo>>%0 [!MAC!]!IP!
) else (pause>nul)
exit

************************************************************
::以下DNS僅供福州地區(qū)使用,請(qǐng)自行更改為本地區(qū)各寬帶運(yùn)營(yíng)商DNS

:10000
set DNS1=218.85.152.99
set DNS2=218.85.157.99
goto :eof

:10010
set DNS1=58.22.96.66
set DNS2=218.104.128.106
goto :eof

:10086
set DNS1=222.47.29.93
set DNS2=222.47.62.142
goto :eof
************************************************************
主機(jī)MAC與IP分配對(duì)應(yīng)數(shù)據(jù)庫(kù),當(dāng)內(nèi)網(wǎng)有MAC綁定時(shí)可快速查詢(xún)相應(yīng)IP
可按示例格式([MAC地址]IP地址)自行添加,每組數(shù)據(jù)單獨(dú)一行
示例:
[11-22-33-44-55-66]192.168.0.1
************************************************************

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何編寫(xiě)IP地址設(shè)置切換批處理”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI