复制以下代码到新建文本,名字任意,改后缀为bat或cmd即可
静态IP设置:
@echo off
title 静态IP设置
set name=改为连接的名字,如 无线连接 或 本地连接
set IP=此处填写固定IP,如 192.168.1.2
set mask=此处填写子网掩码,如 255.255.255.0
set gw=此处填写网关,如 192.168.1.1
set dns=此处填写DNS服务器,192.168.1.1
set dns2=此处填写备用DNS服务器
netsh int ip set addr name="%name%" source=static addr=%IP% mask=%mask% gateway=%gw% gwmetric=1
netsh int ip set dns name="%name%" source=static addr=%dns% register=primary
netsh int ip add dns name="%name%" addr=%dns2%
netsh int ip set wins name="%name%" source=static addr=none
echo 静态IP设置完成
pause
动态IP设置(自动获取):
@echo off
title 动态自动获取IP设置
set name=改为连接的名字,如 无线连接 或 本地连接
netsh int ip set addr name="%name%" source=dhcp
netsh int ip set dns name="%name%" source=dhcp
echo 动态自动获取IP设置完成
pause
自动切换:
@echo off
chcp 936>nul
set name=以太网
set ip=10.3.115.105
set gw=10.3.115.1
set mask=255.255.255.0
set dns1=10.0.0.1
set dns2=10.0.255.1
:start
echo --------------------------------------------------------
echo 当前设置链接名字:"%name%"
echo --------------------------------------------------------
echo.
for /f "tokens=*" %%i in ('ipconfig /all^|findstr /N "%name%:"') do (
set cn=%%i
)
rem 验证链接是否存在
rem 不存在则跳转至结束
if not defined cn (
call :err1
goto :end
)
rem 提取查找的链接所在行号
for /f "delims=: tokens=1" %%i in ("%cn%") do (
set count=%%i
)
rem 验证链接是否断开
set /a count+=2
for /f "tokens=*" %%i in ('ipconfig /all^|findstr /N ".*"^|find "%count%:"') do (
set dev=%%i
)
set dev=%dev:*:=%
set dev=%dev:*: =%
if defined dev (
rem 设备已断开
set /a count+=4
) else (
rem 设备未断开
set /a count+=3
)
rem 验证链接状态
for /f "tokens=*" %%i in ('ipconfig /all^|findstr /N "DHCP"^|find "%count%:"') do (
set status=%%i
)
rem 获取状态失败
rem 跳转至结束
if not defined status (
call :err3
goto :end
)
rem 提取该行最后一个字符
set status=%status:~-1,1%
if {%status%} == {是} (
rem IP地址获取方式为DHCP
call :static
) else if {%status%} == {否} (
rem IP地址获取方式为静态
call :dhcp
)
:end
echo.
set /p=3 秒后将自动退出本程序...<nul
choice /t 3 /c ync /cs /d y >nul
exit /B 0
:dhcp
echo 即将改为: DHCP 获取方式
echo --------------------------------------------------------
netsh int ip set address name="%name%" source=dhcp >nul 2> nul
netsh int ip set dns name="%name%" source=dhcp >nul 2> nul
echo ip设置完成
echo --------------------------------------------------------
goto :eof
:static
echo 即将改为: 静态获取方式
echo --------------------------------------------------------
echo 静态 IP :%ip%
echo 子网掩码:%mask%
echo 默认网关:%gw%
echo 首选 DNS:%dns1%
echo 备用 DNS:%dns2%
echo --------------------------------------------------------
netsh int ip set address name="%name%" source=static addr=%ip% mask=%mask% gateway=%gw% gwmetric=1 >nul 2> nul
netsh int ip set dns name="%name%" source=static addr=%dns1% register=primary >nul 2> nul
netsh int ip add dns name="%name%" addr=%dns2% >nul 2> nul
netsh int ip set wins name="%name%" source=static addr=none >nul 2> nul
echo ip设置完成
echo --------------------------------------------------------
goto :eof
:err1
echo "%name%" 未启用或网络连接不存在!
exit /B 1
:err2
echo 网络电缆已拔开!
exit /B 2
:err3
echo 脚本发生错误!
exit /B 3