Windows下批处理自动切换IP
公司固定IP,在家自动IP,懒得麻烦设置了,知道网上有批处理写IP自动切换,下次考虑拿Qt写个图形化界面
一、 首先查看网卡名字,批处理中运行 netsh interface show interface
结果可能如下
D:\GitHub>netsh interface show interface
管理员状态 状态 类型 接口名称
-------------------------------------------------------------------------
已启用 已连接 专用 VMware Network Adapter VMnet1
已启用 已连接 专用 VMware Network Adapter VMnet8
已启用 已连接 专用 本地连接* 10
已启用 已连接 专用 WLAN
已启用 已断开连接 专用 以太网
中文的话记得直接复制中文
二、 根据所需修改下面批处理的变量,记得用 GB2312 编码存成 ip.bat
(不要问我为什么,编码问题会造成各种f___问题)
@ECHO OFF
rem To check all NIC name.use: >> netsh interface show interface <<
set addr=10.100.8.184
set mask=255.255.255.0
set gateway=10.100.8.1
set dns1=172.16.172.82
set dns2=172.16.172.83
set nic=以太网
rem get Administrator 's permission
rem https://www.zhihu.com/question/34541107
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit
:Admin
goto retry
rem https://stackoverflow.com/questions/33037811/batch-commands-to-change-ip-and-dns
:retry
echo.Your NIC name is %nic%
SET /P no= press 1 for StaticIP , 2 for DhcpIP:
IF "%no%"=="1" GOTO BUZZ
IF "%no%"=="2" GOTO BSNL
rem if %no% is not 1 nor 2 then exit or goto :retry.
exit /b 0
:BUZZ
netsh interface ipv4 set address name=%nic% source=static ^
addr=%addr% mask=%mask% gateway=%gateway%
netsh interface ip add dns name=%nic% addr=%dns1%
netsh interface ip add dns name=%nic% addr=%dns2% index=2
echo. Done!
rem job done, then exit with a pause before
pause
exit /b 0
:BSNL
netsh interface ip set address %nic% dhcp
netsh interface ip set dns %nic% dhcp
echo. Done!
pause
这个批处理自带权限提升,无需右键管理员
参考:
评论已关闭