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 )
:set set IP=192.168.0.9 cls&echo.&echo 默认 IP 为 !IP! ,如需改变请手动输入并回车,如取默认值请直接回车: echo.&set /p IP= cls&echo.&echo 默认子网掩码为 !MASK! ,如需改变请手动输入并回车,如取默认值请直接回车: echo.&set /p MASK= cls&echo.&echo 默认网关为 !GATE! ,如需改变请手动输入并回车,如取默认值请直接回车: echo.&set /p GATE= :isp cls&echo.&echo 请选择宽带线路对应 DNS (福州地区): echo.&echo 1 - 中国电信 echo.&echo 2 - 中国联通 / 中国网通 echo.&echo 3 - 中国移动 / 中国铁通 echo.&echo 4 - 内网网关%GATE% echo.&set isp=&set /p isp=请输入序号并回车加以选择: 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 输入的序号有误,请重新选择!&goto :isp :doset cls&echo.&echo 正在设置 %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 cls&echo.&echo 正在设置 %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 设置完毕,当前 IP 信息如上,请仔细查看 if !inbat! equ 0 ( echo.&echo 输入 Y 并回车可将本机 MAC 及 IP 数据添加到本批处理中以便下次自动识别 echo.&set /p addbat=若不添加数据请直接回车退出: if /i !addbat! equ Y echo>>%0 [!MAC!]!IP! ) else (pause>nul) exit