Windows一键设置Windows系统中无线网络(WLAN)和本地连接(以太网)的IP地址配置
主要功能:设置静态IP:为选定的适配器配置静态IP地址;设置DHCP:将适配器恢复为自动获取IP设置;恢复备份:从历史备份中恢复网络配置;自动备份:每次修改配置前自动备份当前设置。
提示:首次运行时需要管理员权限;备份文件保存在脚本同目录的 network_backup 文件夹;输入参数时直接回车使用默认值;恢复备份时选择文件名包含适配器名称和时间戳的文件
@echo off
setlocal enabledelayedexpansion
REM =============================================
REM 网络配置工具 v2.0
REM 功能:
REM 1. 动态识别系统网络适配器
REM 2. 备份/恢复网络配置
REM 3. 灵活设置静态IP或DHCP
REM 4. 支持自定义网络参数
REM =============================================
REM --- 请求管理员权限 ---
>nul 2>&1 "%%SYSTEMROOT%%\system32\cacls.exe" "%%SYSTEMROOT%%\system32\config\system"
if '%%errorlevel%%' NEQ '0' (
echo 请求管理员权限...
powershell -Command "Start-Process '%%~0' -Verb RunAs"
exit /b
)
REM --- 创建备份目录 ---
if not exist "network_backup" mkdir network_backup
:MAIN_MENU
cls
echo.
echo ********************************************
echo * 网络配置管理工具 v2.0 *
echo ********************************************
echo * *
echo * 1. 设置静态IP地址 *
echo * 2. 设置DHCP自动获取 *
echo * 3. 恢复备份的网络配置 *
echo * 4. 退出 *
echo * *
echo ********************************************
echo.
set /p choice="请选择操作 [1-4]: "
if "%%choice%%"=="1" goto SET_STATIC_IP
if "%%choice%%"=="2" goto SET_DHCP
if "%%choice%%"=="3" goto RESTORE_CONFIG
if "%%choice%%"=="4" exit
echo 无效选择,请重新输入
timeout /t 2 >nul
goto MAIN_MENU
:SET_STATIC_IP
call :SELECT_ADAPTER
if "%%selected_adapter%%"=="" goto MAIN_MENU
REM --- 备份当前配置 ---
call :BACKUP_CONFIG "%%selected_adapter%%"
REM --- 获取用户输入 ---
echo.
echo 请输入网络参数(直接回车使用默认值)
echo.
set /p ip=IP地址 (默认 192.168.2.100):
set /p mask=子网掩码 (默认 255.255.255.0):
set /p gateway=网关 (默认 192.168.2.1):
set /p dns1=首选DNS (默认 223.5.5.5):
set /p dns2=备用DNS (默认 114.114.114.114):
if "%%ip%%"=="" set ip=192.168.2.100
if "%%mask%%"=="" set mask=255.255.255.0
if "%%gateway%%"=="" set gateway=192.168.2.1
if "%%dns1%%"=="" set dns1=223.5.5.5
if "%%dns2%%"=="" set dns2=114.114.114.114
REM --- 应用设置 ---
cls
echo.
echo 正在设置适配器: !selected_adapter!
echo IP地址: %%ip%%
echo 子网掩码: %%mask%%
echo 网关: %%gateway%%
echo 首选DNS: %%dns1%%
echo 备用DNS: %%dns2%%
echo.
netsh interface ip set address name="!selected_adapter!" static %%ip%% %%mask%% %%gateway%% 1
netsh interface ip set dns name="!selected_adapter!" static %%dns1%%
netsh interface ip add dns name="!selected_adapter!" %%dns2%% index=2
echo 设置完成!
echo 配置已备份到: !backup_file!
echo.
pause
goto MAIN_MENU
:SET_DHCP
call :SELECT_ADAPTER
if "%%selected_adapter%%"=="" goto MAIN_MENU
REM --- 备份当前配置 ---
call :BACKUP_CONFIG "%%selected_adapter%%"
REM --- 设置DHCP ---
cls
echo.
echo 正在设置适配器: !selected_adapter! 使用DHCP
echo.
netsh interface ip set address name="!selected_adapter!" source=dhcp
netsh interface ip set dns name="!selected_adapter!" source=dhcp
echo DHCP设置完成!
echo 原配置已备份到: !backup_file!
echo.
pause
goto MAIN_MENU
:RESTORE_CONFIG
cls
echo.
echo 可用的备份文件:
echo ====================================
set count=0
for /f "delims=" %%%%f in ('dir /b network_backup\*.bak') do (
set /a count+=1
set "file!count!=%%%%f"
echo !count!. %%%%f
)
if %%count%% EQU 0 (
echo 没有找到备份文件!
pause
goto MAIN_MENU
)
echo.
set /p backup_choice="请选择要恢复的备份 [1-%%count%%]: "
if not defined file%%backup_choice%% (
echo 无效选择!
timeout /t 2 >nul
goto RESTORE_CONFIG
)
set "backup_file=network_backup\!file%%backup_choice%%!"
REM --- 从备份恢复 ---
echo.
echo 正在从备份恢复配置: !backup_file!
echo.
for /f "usebackq tokens=1,2 delims==" %%%%a in ("!backup_file!") do (
if "%%%%a"=="adapter" set adapter=%%%%b
if "%%%%a"=="ip" set ip=%%%%b
if "%%%%a"=="mask" set mask=%%%%b
if "%%%%a"=="gateway" set gateway=%%%%b
if "%%%%a"=="dns1" set dns1=%%%%b
if "%%%%a"=="dns2" set dns2=%%%%b
if "%%%%a"=="config_type" set config_type=%%%%b
)
if "%%config_type%%"=="static" (
echo 恢复静态IP配置...
netsh interface ip set address name="%%adapter%%" static %%ip%% %%mask%% %%gateway%% 1
netsh interface ip set dns name="%%adapter%%" static %%dns1%%
netsh interface ip add dns name="%%adapter%%" %%dns2%% index=2
) else (
echo 恢复DHCP配置...
netsh interface ip set address name="%%adapter%%" source=dhcp
netsh interface ip set dns name="%%adapter%%" source=dhcp
)
echo 配置恢复完成!
echo.
pause
goto MAIN_MENU
:SELECT_ADAPTER
cls
echo.
echo 请选择网络适配器:
echo ====================================
set count=0
for /f "tokens=3*" %%%%a in ('netsh interface show interface ^| findstr "Connected"') do (
set /a count+=1
set "adapter!count!=%%%%b"
echo !count!. %%%%b
)
if %%count%% EQU 0 (
echo 未找到活动的网络适配器!
pause
set selected_adapter=
goto :eof
)
echo.
set /p adapter_choice="请选择适配器 [1-%%count%%]: "
if not defined adapter%%adapter_choice%% (
echo 无效选择!
timeout /t 2 >nul
goto SELECT_ADAPTER
)
set "selected_adapter=!adapter%%adapter_choice%%!"
goto :eof
:BACKUP_CONFIG
set backup_adapter=%%~1
REM --- 生成备份文件名 ---
set "timestamp=%%date:~-4%%%%date:~-7,2%%%%date:~-10,2%%_%%time:~0,2%%%%time:~3,2%%%%time:~6,2%%"
set "timestamp=%%timestamp: =0%%"
set "backup_file=network_backup\%%backup_adapter%%_%%timestamp%%.bak"
REM --- 获取当前配置 ---
for
/f "tokens=2 delims=:" %%%%a in ('netsh interface ip show config
"%%backup_adapter%%" ^| findstr "IP 地址"') do set "current_ip=%%%%a"
for
/f "tokens=2 delims=:" %%%%a in ('netsh interface ip show config
"%%backup_adapter%%" ^| findstr "子网掩码"') do set "current_mask=%%%%a"
for
/f "tokens=2 delims=:" %%%%a in ('netsh interface ip show config
"%%backup_adapter%%" ^| findstr "默认网关"') do set "current_gateway=%%%%a"
for /f "tokens=3 delims=:" %%%%a in ('netsh interface ip show dnsservers "%%backup_adapter%%" ^| findstr "服务器"') do (
if not defined current_dns1 (
set "current_dns1=%%%%a"
) else if not defined current_dns2 (
set "current_dns2=%%%%a"
)
)
REM --- 判断配置类型 ---
echo %%current_ip%% | findstr "自动" >nul
if %%errorlevel%% equ 0 (
set config_type=dhcp
) else (
set config_type=static
)
REM --- 创建备份文件 ---
(
echo adapter=%%backup_adapter%%
echo config_type=%%config_type%%
echo ip=%%current_ip%%
echo mask=%%current_mask%%
echo gateway=%%current_gateway%%
echo dns1=%%current_dns1%%
echo dns2=%%current_dns2%%
) > "%%backup_file%%"
set "backup_file=%%backup_file%%"
goto :eof
本文最后更新时间 2025-09-18
文章链接地址:https://xzlo.blog/index.php/archives/64/
本站文章除注明[转载|引用|原文]出处外,均为本站原生内容,转载前请注明出处
文章排版需要优化一下
不错,很好用