一、背景
為解決公司普通人員需要切換IP、DNS的情況,于是搞了個windows下的bat腳本,可以對有線網絡、無線網絡進行切換設置。
腳本內容
@echo off
title 多網絡接口IP切換工具:menu
cls
echo ============================
echo 請選擇要配置的網絡接口:
echo ============================
echo 1. 有線網絡(以太網)
echo 2. 無線網絡(Wi-Fi)
echo 3. 刷新DNS緩存
echo 4. 退出
echo ============================
set /p choice=請輸入選項(1-3): if %choice%==1 goto wiredMenu
if %choice%==2 goto wirelessMenu
if %choice%==3 goto flushDns
if %choice%==4 goto end:wiredMenu
cls
echo ============================
echo 選擇有線網絡的IP配置:
echo ============================
echo 1. 使用DHCP自動獲取所有設置
echo 2. 使用DHCP自動獲取IP地址 (固定DNS)
echo 3. IP配置 1 (192.168.66.101)
echo 4. IP配置 2 (192.168.1.101)
echo 5. 返回主菜單
echo ============================
set /p wiredChoice=請輸入選項(1-5): if %wiredChoice%==1 goto wiredDhcp
if %wiredChoice%==2 goto wiredDhcpFixedDns
if %wiredChoice%==3 goto wiredIp1
if %wiredChoice%==4 goto wiredIp2
if %wiredChoice%==5 goto menu:wiredDhcp
echo 正在設置有線網絡使用DHCP自動獲取IP地址和DNS...
call :applyDhcp "以太網"
goto checkConfigEthernet:wiredDhcpFixedDns
echo 正在設置有線網絡使用DHCP自動獲取IP地址,但使用固定DNS...
call :applyDhcpWithFixedDns "以太網" "202.101.202.68" "202.101.224.69"
goto checkConfigEthernet:wiredIp1
echo 應用有線網絡IP配置 1...
call :applyIp "以太網" "192.168.66.101" "255.255.255.0" "192.168.66.1" "202.101.202.68" "202.101.224.69"
goto checkConfigEthernet:wiredIp2
echo 應用有線網絡IP配置 2...
call :applyIp "以太網" "192.168.1.101" "255.255.255.0" "192.168.1.1" "202.101.202.68" "202.101.224.69"
goto checkConfigEthernet:wirelessMenu
cls
echo ============================
echo 選擇無線網絡的IP配置:
echo ============================
echo 1. 使用DHCP自動獲取所有設置
echo 2. 使用DHCP自動獲取IP地址 (固定DNS)
echo 3. IP配置 1 (192.168.1.102)
echo 4. IP配置 2 (192.168.1.103)
echo 5. 返回主菜單
echo ============================
set /p wirelessChoice=請輸入選項(1-5): if %wirelessChoice%==1 goto wirelessDhcp
if %wirelessChoice%==2 goto wirelessDhcpFixedDns
if %wirelessChoice%==3 goto wirelessIp1
if %wirelessChoice%==4 goto wirelessIp2
if %wirelessChoice%==5 goto menu:wirelessDhcp
echo 正在設置無線網絡使用DHCP自動獲取IP地址和DNS...
call :applyDhcp "WLAN"
goto checkConfigWifi:wirelessDhcpFixedDns
echo 正在設置無線網絡使用DHCP自動獲取IP地址,但使用固定DNS...
call :applyDhcpWithFixedDns "WLAN" "202.101.202.68" "202.101.224.69"
goto checkConfigWifi:wirelessIp1
echo 應用無線網絡IP配置 1...
call :applyIp "WLAN" "192.168.1.102" "255.255.255.0" "192.168.1.1" "202.101.202.68" "202.101.224.69"
goto checkConfigWifi:wirelessIp2
echo 應用無線網絡IP配置 2...
call :applyIp "WLAN" "192.168.1.103" "255.255.255.0" "192.168.1.1" "202.101.202.68" "202.101.224.69"
goto checkConfigWifi:applyDhcp
set INTERFACE_NAME=%1
netsh interface ipv4 set address name=%INTERFACE_NAME% source=dhcp
netsh interface ipv4 set dns name=%INTERFACE_NAME% source=dhcp
echo DHCP已啟用.
goto :eof:applyDhcpWithFixedDns
set INTERFACE_NAME=%1
set FIXED_DNS=%2
set SECONDARY_DNS=202.101.202.68
netsh interface ipv4 set address name=%INTERFACE_NAME% source=dhcp
netsh interface ipv4 set dns name=%INTERFACE_NAME% static %FIXED_DNS%
netsh interface ipv4 add dns name=%INTERFACE_NAME% %SECONDARY_DNS% index=2
echo DHCP已啟用,并設置了固定的DNS服務器.
goto :eof:applyIp
set INTERFACE_NAME=%1
set NEW_IP=%2
set SUBNET_MASK=%3
set DEFAULT_GATEWAY=%4
set DNS_SERVER=%5netsh interface ipv4 set address name=%INTERFACE_NAME% static %NEW_IP% %SUBNET_MASK% %DEFAULT_GATEWAY%
netsh interface ipv4 set dns name=%INTERFACE_NAME% static %DNS_SERVER%
netsh interface ipv4 add dns name=%INTERFACE_NAME% 202.101.202.68 index=2
echo IP配置已更新.
goto :eof:checkConfigEthernet
echo 顯示當前有線網絡配置...
netsh interface ip show config name="以太網"
pause
goto menu:checkConfigWifi
echo 顯示當前無線網絡配置...
netsh interface ip show config name="WLAN"
pause
goto menu:flushDns
echo 正在刷新DNS緩存...
ipconfig /flushdns
echo DNS緩存已刷新。
pause
goto menu:end
echo 程序結束。
pause
exit
請用管理員運行的cmd輸入netsh interface ipv4 show interfaces
查看接口與腳本中的接口名稱是否一致
三、自定義腳本
請自行用記事本、notpad++、EmEditor、cudatex對bat腳本進行修改
有線修改位置if %wiredChoice%==
無線網絡修改位置if %wirelessChoice%==
四、使用