使用netsh interface ip set 命令实现快速切换IP地址及DNS地址

由于工作原因,公司电脑经常需要设置IP切换内外网,于是之前通过设置双网IP的方式,成功解决了每次切换都要手动一步步完成网络设置的痛点。然而最近网络环境做了变更,双IP居然不管用了!

本着懒是第一生产力的原则,在又学习了一遍netsh命令之后,决定还是通过用bat文件运行dos命令的方式来完成IP切换。代码很简单,但在实操中还是发现了不少问题,于是在这里做下整理和记录,以便后期忘了还有笔记可查。

 

本次用到的DOS命令是:netsh interface ip set (address/dns) ,可简写为 netsh  int ip set (address /dns)
用法格式:

切换静态ip及dns

pushd C:\WINDOWS\system32
#设置环境变量目录,如bat保存于桌面,无此命令可能无法调用环境变量

netsh interface ip set address name="以太网" source=static address=192.168.1.10 mask=255.255.255.0 gateway=192.168.1.1
#设置静态IP,更改网络连接名称为"以太网",ip设置为192.168.1.10,子网为255.255.255.0,网关为192.168.1.1

netsh interface ip add dns name="以太网" address=114.114.114.114
#设置静态dns为114.114.114.114

pause
#批处理最后加上pause,防止bat运行后自动闪退关闭,可以查看是否有运行错误信息

切换动态ip及dns

pushd C:\WINDOWS\system32

netsh interface ip set address name="以太网" source=dhcp
#设置动态IP,更改网络连接名称为"以太网",ip设置为dhcp

netsh interface ip add dns name="以太网" source=dhcp
#设置dns为dhcp

pause

上述代码直接复制到txt文本文件,另存为bat文件即可使用,IP地址,掩码,网关和DNS按需求自行更改即可;

执行bat文件时需以管理员权限身份运行;

 

实操遇见的问题如下:

首行如无添加pushd,且bat文件保存在C:\windows\system32目录之外的话,会出现那无法调用环境变量的问题,除了netsh interface ip set命令,部分命令也有这个问题;

bat文件无法运行时,末行加入pause方便查看运行情况;

bat文件命令行中如必须出现中文(如上文”以太网“),编写完成后需保存为ANSI编码格式,否则在dos窗口运行时会出现乱码,导致语法错误,如下图;

更改后运行正常

 

 

 END 


借鉴来自:

https://blog.csdn.net/yyxaf/article/details/7289073

https://zhidao.baidu.com/question/522584112.html

https://jingyan.baidu.com/article/a3f121e4d84a5dfc9152bb55.html


版权声明:本文为doyoulikediss原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。