使用BAT脚本快速切换网络配置

因为特殊需求,我需要将电脑的IP地址,路由地址以及DNS在自定义与DHCP之间进行快速的切换,因此写了个脚本。

此脚本自动获取管理员权限,并在切换时清除DNS缓存。请根据自己需求自行替换<>中的配置,如果网卡名称不是以太网,请自行修改。

@echo off
color 37
mode con cols=55 lines=20
title 网络配置切换脚本
cd /d "%~dp0"
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit

:Admin

echo 网络配置切换脚本
echo.
echo 脚本作者:liuyanxi
echo.
echo ==============================
echo.
echo 当前配置如下:
netsh interface ip show address "以太网" | findstr "默认网关"
netsh interface ip show dnsservers "以太网" | findstr "静态配置的 DNS 服务器"
echo.
echo ==============================
echo.
echo 请选择您需要的操作:
echo 1:自定义配置
echo 2:还原DHCP
:A
set /p name=请输入:
if "%name%"=="1" (
	cls
    echo 正在切换至自定义配置...
	echo.
    goto custom
) else if "%name%"=="2" (
	cls
    echo 正在还原DHCP设置...
	echo.
    goto dhcp
) else (
    echo 您输入了错误选项,请重新输入
    goto A
)
:custom
echo 手动设置IP地址.... 
Netsh interface IP Set Addr "以太网" Static <IP> 255.255.255.0 <路由> 1 >nul 2>nul
echo 手动设置DNS地址.... 
Netsh interface IP Set dns "以太网" static <DNS> primary >nul 2>nul
echo 清除DNS缓存....
ipconfig /flushdns >nul 2>nul
Echo 设置完成
echo.
echo ==============================
echo.
echo 当前配置如下
netsh interface ip show address "以太网" | findstr "默认网关"
netsh interface ip show dnsservers "以太网" | findstr "静态配置的 DNS 服务器"
echo.
echo ==============================
echo.
echo 按任意键退出...
pause >nul
exit
:dhcp
echo 自动获取IP地址.... 
netsh interface ip set address name = "以太网" source = dhcp >nul 2>nul
echo 自动获取DNS服务器.... 
netsh interface ip set dns name = "以太网" source = dhcp >nul 2>nul
echo 清除DNS缓存....
ipconfig /flushdns >nul 2>nul
Echo DHCP切换完成
echo.
echo ==============================
echo.
echo 当前配置如下
netsh interface ip show address "以太网" | findstr "默认网关"
netsh interface ip show dnsservers "以太网" | findstr "静态配置的 DNS 服务器"
echo.
echo ==============================
echo.
echo 按任意键退出...
pause >nul
exit

浏阳河

...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注