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-08-12
文章链接地址:https://xzlo.blog/index.php/archives/64/
本站文章除注明[转载|引用|原文]出处外,均为本站原生内容,转载前请注明出处
文章排版需要优化一下
不错,很好用