Windows运维中快速切换IP的核心是用netsh命令行配合BAT脚本:先通过netsh interface show interface确认网卡名称,再以管理员身份运行static.bat(设静态IP/DNS)或dhcp.bat(启DHCP),关键需匹配真实适配器名、避免中文引号、正确调用set/add dns及gateway参数。
在 windows 运维中,快速切换静态 ip 和 dhcp 配置,核心是绕过图形界面、用命令行固化操作逻辑,再通过批处理脚本一键触发。关键不在于写多复杂的代码,而在于准确识别网卡、正确调用 netsh 命令,并适配真实环境中的命名差异和权限要求。
确认并固定你的网络连接名称
Windows 的“以太网”“WLAN”“Wi-Fi”等名称不是通用的,而是由系统或驱动动态生成的。直接写死名称(如"以太网")在不同电脑上极易失败。必须先查准:
- 以管理员身份打开命令提示符,运行
netsh interface show interface或ipconfig /all - 找到你实际使用的有线/无线适配器,记下“名称”列的完整字符串(例如:“以太网 2”、“本地连接* 12”、“WLAN”)
- 脚本中所有
name=...参数必须严格匹配该名称,包括空格和星号
写两个最小可用脚本:static.bat 和 dhcp.bat
不需要功能堆砌,先保证能跑通。每个脚本只做一件事,参数集中、输出清晰:
-
static.bat(设置静态IP):
@echo off<br>set INTERFACE_NAME="以太网 2"<br>set IP_ADDRESS=192.168.1.100<br>set SUBNET_MASK=255.255.255.0<br>set GATEWAY=192.168.1.1<br>set DNS=8.8.8.8<br><br>netsh interface ip set address name=%INTERFACE_NAME% source=static addr=%IP_ADDRESS% mask=%SUBNET_MASK% gateway=%GATEWAY%<br>netsh interface ip set dns name=%INTERFACE_NAME% source=static addr=%DNS%<br>echo 已配置静态IP:%IP_ADDRESS%<br>pause
-
dhcp.bat(恢复自动获取):
@echo off<br>set INTERFACE_NAME="以太网 2"<br><br>netsh interface ip set address name=%INTERFACE_NAME% source=dhcp<br>netsh interface ip set dns name=%INTERFACE_NAME% source=dhcp<br>echo 已启用DHCP<br>ipconfig /flushdns >nul<br>pause
注意:两个脚本都必须右键 → 以管理员身份运行,否则 netsh 会静默失败。
进阶:一个脚本支持多套配置(实验室/办公/热点)
如果你常在多个固定网络间切换(比如公司静态、家里DHCP、手机热点),可合并为一个菜单式脚本:
- 开头用
set /p CHOICE=请选择网络模式 [1]公司 [2]家庭 [3]热点: - 用
if "%CHOICE%"=="1"分支分别设定对应 IP、网关、DNS - 每套配置里都包含完整的
set address和set dns,避免遗漏 - 加一句
ipconfig /renew %INTERFACE_NAME% >nul 2>&1强制刷新,提升成功率
别忽略的细节和排错点
很多脚本看似写了却不起作用,问题往往出在这些地方:
-
DNS 添加顺序:设主DNS用
set dns ... static addr=...;加备用DNS必须用add dns ... addr=... index=2,否则第二条会被忽略 -
网关参数位置:
set address命令中,gateway 是可选参数,但一旦指定就必须跟在 mask 后面,不能省略或错位 - 中文引号陷阱:复制脚本时若混入全角中文引号(“”),会导致命令解析失败,务必检查并替换为英文半角双引号("")
-
执行后无反应? 先运行
netsh interface ip show config查看当前生效配置,确认是否真被修改,而非界面没刷新


















