Windows · 2022年6月10日

【转载】win10电脑通过bat脚本自动配置IP地址

1.需求描述

现在有win10电脑一台,但是由于办公环境需要随时切换内外网,所以经常需要手工配置IP地址。内外需要配置固定IP地址,外网需要配置为自动获取IP地址

2.实现过程

2.1 代码部分

@echo off
rem 强制获取管理员权限
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
rem //设置变量 
set NAME="以太网 2"
rem //以下属性值可以根据需要更改
set ADDR=100.101.0.19
set MASK=255.255.255.0
set GATEWAY=100.101.0.1
set DNS1=
set DNS2=
rem //以上属性依次为IP地址、子网掩码、网关、首选DNS、备用DNS


echo 当前可用操作有:
echo 1 设置为静态IP
echo 2 设置为动态IP
echo 3 退出
echo 请选择后回车:
set /p operate=
if %operate%==1 goto 1
if %operate%==2 goto 2
if %operate%==3 goto 3


:1
echo 正在设置静态IP,请稍等...
rem //可以根据你的需要更改 
echo IP地址 = %ADDR%
echo 掩码 = %MASK%
echo 网关 = %GATEWAY%
netsh interface ipv4 set address %NAME% static %ADDR% %MASK% %GATEWAY% 
echo 首选DNS = %DNS1% 
if "%DNS1%"=="" (echo DNS1为空) else netsh interface ipv4 set dns %NAME% static %DNS1%
echo 备用DNS = %DNS2% 
if "%DNS2%"=="" (echo DNS2为空) else (netsh interface ipv4 add dns %NAME% %DNS2%) 
echo **********已设置为静态IP:%ADDR%***********
pause
goto 3


:2
echo 正在设置动态IP,请稍等...
echo 正在从DHCP自动获取IP地址...
netsh interface ip set address %NAME% dhcp
echo 正在从DHCP自动获取DNS地址...
netsh interface ip set dns %NAME% dhcp 
echo **********已设置为动态IP地址***********
pause
goto 3


:3
exit

2.2 文件编码

复制代码到新建文本文档.txt

`

点击文件 -->> 另存为如下图黄色标记部分选择编码格式为:ANSI,注意:需要将文件的后缀名.txt 修改为 .bat

2.3 配置网卡名

在脚本中需要根据自己电脑修改相应的网卡名配置

此处我的优先网卡名是【以太网 2】(注意:字与数字2之间是存在空格的)

2.4 运行脚本

双击【自动配置IP地址.bat】,弹出【你要允许此应用对你的窗口进行更改吗?】提示,选择【是】后即可选择配置IP