由于工作原因,公司电脑经常需要设置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