@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

title DNS 一键切换工具

:menu
cls
echo ==============================
echo        DNS 一键切换工具
echo ==============================
echo.
echo 1. Cloudflare DNS
echo    主: 1.1.1.1   备: 1.0.0.1
echo.
echo 2. Google DNS
echo    主: 8.8.8.8   备: 8.8.4.4
echo.
echo 3. Quad9 DNS
echo    主: 9.9.9.9   备: 1.1.1.1
echo.
echo 4. 混合 DNS
echo    主: 8.8.8.8   备: 1.1.1.1
echo.
echo 0. 退出
echo.

set /p choice=请输入选择 (0-4):

if "%choice%"=="1" (
    set dns1=1.1.1.1
    set dns2=1.0.0.1
    goto apply
)

if "%choice%"=="2" (
    set dns1=8.8.8.8
    set dns2=8.8.4.4
    goto apply
)

if "%choice%"=="3" (
    set dns1=9.9.9.9
    set dns2=1.1.1.1
    goto apply
)

if "%choice%"=="4" (
    set dns1=8.8.8.8
    set dns2=1.1.1.1
    goto apply
)

if "%choice%"=="0" exit

echo 输入错误，请重新选择！
timeout /t 2 >nul
goto menu

:apply
cls
echo 正在应用 DNS...
echo.
echo 主DNS: !dns1!
echo 备DNS: !dns2!
echo.

powershell -Command "Get-NetAdapter | Where-Object {$_.Status -eq 'Up'} | ForEach-Object {Set-DnsClientServerAddress -InterfaceAlias $_.Name -ServerAddresses ('!dns1!','!dns2!')}"

ipconfig /flushdns

echo.
echo 修改完成！
echo 按回车退出...
pause >nul
exit