if exist "%windir%\system32\slmgr.vbs" ( echo.echo 本批處理在 VISTA 以及 WIN7 中須以管理員身份運行 echo.echo 請查看批處理窗口標題欄信息開頭是否為“管理員:” echo.echo 如符合上述條件可按任意鍵繼續(xù),否則請退出批處理后以管理員身份重新運行 pause>nul )
set n=0 for /f "delims=:" %%a in ('ipconfig/all^|findstr /i /b /c:"Ethernet adapter"') do (set /a n=!n!+1set str=%%aset 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!+1set 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!+1set MAC!n!=%%a)
:net echo.echo 請選擇當前本機要設(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 clsecho.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 在批處理數(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ù)請手動輸入并回車,如取默認值請直接回車 : echo.set /p MASK=如需改變 子網(wǎng)掩碼 數(shù)據(jù)請手動輸入并回車,如取默認值請直接回車 : echo.set /p GATE=如需改變 網(wǎng)關(guān) 數(shù)據(jù)請手動輸入并回車,如取默認值請直接回車 : goto :isp ) else ( set inbat=0 echo.echo 在批處理數(shù)據(jù)庫中未找到對應(yīng) IP ,請手動選擇 IP 設(shè)置方式 goto :lan )
:set set IP=192.168.0.9 clsecho.echo 默認 IP 為 !IP! ,如需改變請手動輸入并回車,如取默認值請直接回車: echo.set /p IP= clsecho.echo 默認子網(wǎng)掩碼為 !MASK! ,如需改變請手動輸入并回車,如取默認值請直接回車: echo.set /p MASK= clsecho.echo 默認網(wǎng)關(guān)為 !GATE! ,如需改變請手動輸入并回車,如取默認值請直接回車: echo.set /p GATE= :isp clsecho.echo 請選擇寬帶線路對應(yīng) DNS (福州地區(qū)): echo.echo 1 - 中國電信 echo.echo 2 - 中國聯(lián)通 / 中國網(wǎng)通 echo.echo 3 - 中國移動 / 中國鐵通 echo.echo 4 - 內(nèi)網(wǎng)網(wǎng)關(guān)%GATE% echo.set isp=set /p isp=請輸入序號并回車加以選擇: if %isp% equ 1 (call :10000goto :doset) if %isp% equ 2 (call :10010goto :doset) if %isp% equ 3 (call :10086goto :doset) if %isp% equ 4 (set DNS1=%GATE%goto :doset) echo.echo 輸入的序號有誤,請重新選擇!goto :isp :doset clsecho.echo 正在設(shè)置 %NET% ,IP 地址為 %IP%,請稍候... 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 clsecho.echo 正在設(shè)置 %NET% ,自動獲取 IP 及 DNS ,請稍候... 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è)置完畢,當前 IP 信息如上,請仔細查看 if !inbat! equ 0 ( echo.echo 輸入 Y 并回車可將本機 MAC 及 IP 數(shù)據(jù)添加到本批處理中以便下次自動識別 echo.set /p addbat=若不添加數(shù)據(jù)請直接回車退出: if /i !addbat! equ Y echo>>%0 [!MAC!]!IP! ) else (pause>nul) exit