Windows一键设置Windows系统中无线网络(WLAN)和本地连接(以太网)的IP地址配置
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当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »