今天帮朋友处理一个电脑问题,于是将忘记多年的批处理捡了回来,写了下面这个修改IP地址的批处理,其实网上有很多,但网络连接的名字不是本地连接就是其他固定名称,这段代码将会先去获取网络连接名称,再进行IP地址设置。
::设置关闭回显和变量延迟
@echo off & setlocal EnableDelayedExpansion
::设置标题文字
title 设置IP地址
::设置背景黑色,字体浅绿色
color 0A
::一开始跳转到初始化操作
goto init
::初始化操作
:init
set value=
set ethernetAdapter=
set ipAddr=
set subMask=
set gateway=
set primaryDNS=8.8.8.8
set spareDNS=114.114.114.114
set defaultSubMask=255.255.255.0
echo 1.自动获取IP地址
echo 2.手动设置IP地址
set /p value=请选择操作:
if !value! == 1 (
goto auto
) else (
if !value! == 2 (
goto static
) else (
if !value! == exit (
exit /b
) else (
goto error
)
)
)
:eof
::设置动态获取IP地址
:auto
goto scanEthernetAdapter
:eof
::设置静态IP地址
:static
echo.
set /p ipAddr=请输入IP地址:
set /p subMask=请输入子网掩码(按回车将设为默认255.255.255.0):
set /p gateway=请输入默认网关:
goto scanEthernetAdapter
:eof
::获取网络连接名称
:scanEthernetAdapter
@(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>"d:\network.txt"
set j=0
for /f "tokens=*" %%i in (d:\network.txt) do (
set /a j+=1
set con!j!=%%i
call set ethernetAdapter=%%con!j!%%
echo !ethernetAdapter!
)
goto setup
pause
:eof
::根据用户所选执行操作
:setup
if !value! == 1 (
echo.
echo 正在设置自动获取IP地址...
netsh interface ip set address name = %ethernetAdapter% source = dhcp
netsh interface ip set dns name = %ethernetAdapter% source = dhcp
echo 自动获取IP地址成功!
) else (
echo.
echo 正在设置静态IP地址...
if "%subMask%"=="" (
echo.
echo IP地址: %ethernetAdapter% %ipAddr% %defaultSubMask% %gateway%
netsh interface ip set addr name=%ethernetAdapter% source=static addr=%ipAddr% mask=%defaultSubMask% gateway=%gateway%
) else (
echo.
echo IP地址: %ethernetAdapter% %ipAddr% %subMask% %gateway%
netsh interface ip set addr name=%ethernetAdapter% source=static addr=%ipAddr% mask=%subMask% gateway=%gateway%
)
echo.
echo 正在设置首选DNS服务器...
cmd /c netsh interface ip set dns name=%ethernetAdapter% source=static addr=%primaryDNS% register=PRIMARY validate=no
echo.
echo 正在设置备用DNS服务器...
cmd /c netsh interface ip add dns name=%ethernetAdapter% addr=%spareDNS% validate=no
echo 设置静态IP地址成功!
)
pause
exit /b
:eof
::用户输入错误
:error
echo.
echo 输入错误,请重新输入
goto init
:eof
将以上代码写入一个bat后缀文件中,再以管理员身份运行即可。