主要应用与需要频繁改动IP的工作环境。编写完代码运行即可一键操作,还是很方便的
第一行实现bat文件自动从管理员权限启动。clientName代指网络名称,需更换为当前主机名称,当前主机名称可以通过ipiconfig查看。
static标识静态地址
我的网络条件是2个网段都为静态地址。网络1配置固定dns,网络2不需要配置dns。具体代码如下:
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"
:: 设置IP地址
set /p choice=请选择设置类型(1:网络1 / 2:网络2):
echo.
if "%choice%"=="1" goto ip1
if "%choice%"=="2" goto ip2
goto main
:ip1
echo IP自动设置开始...
echo.
echo 正在设置IP及子网掩码
cmd /c netsh interface ip set address name="clientName" source=static addr=xxx.xxx.xxx.xxx mask=xxx.xxx.xxx.xxx gateway=xxx.xxx.xxx.xxx gwmetric=1
echo 正在设置DNS服务器
cmd /c netsh interface ip set dns name="clientName" source=static address=xxx.xxx.xxx.xxx
echo 设置完成
pause
exit
if errorlevel 2 goto main
if errorlevel 1 goto end
:ip2
echo IP自动设置开始....
echo.
echo 正在设置IP及子网掩码
cmd /c netsh interface ip set address name="clientName" source=static addr=xxx.xxx.xxx.xxx mask=xxx.xxx.xxx.xxx gateway=xxx.xxx.xxx.xxx gwmetric=1
echo 正在设置DNS服务器
cmd /c netsh interface ip set dns name="clientName" source=static address=none
echo 设置完成
pause
exit
if errorlevel 2 goto main
if errorlevel 1 goto end
:end
也可根据需要设置为动态获取,将source=static改为source=dhcp。后续addr等信息不用设置即可。
还有一种添加辅助格式的写法,就是将set改为add,目前不知道具体什么作用。