Windows命令行更改有线本地连接IP地址及DNS的bat脚本

时间:2024-03-06 22:23:00

有些场景需要测试网络通不通等,每次打开网络和共享中心真烦,win10右下角还进不去了,shit!

运行ncpa.cpl也打开那个界面也是费劲吧啦,索性写个bat吧!为啥要写?还不是因为懒!可以把脚本复制到带有环境变量的目录里,以后直接Win+R就行了。

功能:设置动态/静态IP、掩码、网关、及DNS

效果如下图:

脚本中添加了管理员权限请求,不然权限不足。

我是Win10系统,win7系统命令不大一样,请把38行那ipv4改成ip。注意!还有接口名称,bat中写的是我的有线网卡“以太网”。

@echo off

::请求管理员权限区块开始
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if \'%errorlevel%\' NEQ \'0\' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
::请求管理员权限区块结束

:start
set /p oh=静态还是DHCP?(s/d):
if %oh%==s (
goto :static
) else if %oh%==d (
goto :dhcp
) else (
echo 请输入s/d!
echo.
goto :start
)

:static
set /p ip=input ip:
set /p c=255.255.255.0请回车,输入任意键改为其他掩码:
set mask=255.255.255.0
if not "%c%"=="" (
set /p mask=输入掩码(x.x.x.x^)^:
)
set /p gw=input gw(可不填):
set /p dns=input dns(可不填):
netsh interface ipv4 set address "以太网" static %ip% %mask% %gw%
:: Win7系统请改为下面命令↓
:: netsh interface ip set address "以太网" static %ip% %mask% %gw%
if not "%dns%"=="" (
netsh interface ipv4 set dnsservers "以太网" static %dns% validate=no
)
goto :end

:dhcp
netsh interface ipv4 set address "以太网" source=dhcp
netsh interface ipv4 set dnsservers "以太网" source=dhcp

:end
echo.
echo OK!

pause