由于单位的性质特殊,需要在双网卡间切换
总是去网络控制面板里禁用太麻烦,于是在网上找了半天
又chatgpt了几下,又找同事研究了一下。
搞了两个简单的小程序。直接贴文字上来吧
如果直接传程序上来,由于win7 win10默认编码不同,会出乱码
只需要把代码部分全保存在txt文本里,再把后缀改了bat就行
1号程序,手动选择禁用启用哪个网卡,代码第二行chcp 65001没有的话,win10会乱码,win7这行不需要。
@echo off
chcp 65001
setlocal enabledelayedexpansion
rem 获取网卡信息
set mac_list=
for /f "tokens=1-3 delims=," %%a in ('Getmac /v /nh /fo csv') do (
if not defined wk1 (
set wk1="%%a"
set wn1="%%b"
set wz1="%%c"
) else (
set wk2="%%a"
set wn2="%%b"
set wz2="%%c"
goto :endloop
)
)
:endloop
rem 输出网卡信息
echo.
echo ------------网卡1信息信息如下:--------------
echo ------------网卡1名称:%wk1%
echo ------------网卡1型号:%wn1% %wz1%
echo.
if defined wk2 (
echo ------------网卡2信息如下:--------------
echo ------------网卡2名称:%wk2%
echo ------------网卡2型号:%wn2% %wz2%
echo.
)
:MENU
echo.
echo ------------右键以管理员身份运行--------------
echo.
echo. 1 启用网卡1同时禁用网卡2
echo.
echo. 2 禁用网卡1同时启用网卡2
echo.
echo. 3 禁用全部网卡
echo.
echo. 4 启用全部网卡
echo.
echo. 5 退 出
echo.
echo. ============ B站你好我请客 瞎编的 =============
echo.
set /p ID=请输入选择项目的序号:
if "%id%"=="1" goto cmd1
if "%id%"=="2" goto cmd2
if "%id%"=="3" goto cmd3
If "%id%"=="4" goto cmd4
If "%id%"=="5" exit
PAUSE
:cmd1
echo 启用网卡"%wk1%"禁用网卡"%wk2%"
netsh interface set interface "%wk1%" enabled
netsh interface set interface "%wk2%" disabled
goto MENU
:cmd2
echo 禁用网卡"%wk1%"启用网卡"%wk2%"
netsh interface set interface "%wk1%" disabled
netsh interface set interface "%wk2%" enabled
goto MENU
:cmd3
echo 禁用网卡"%wk1%"禁用网卡"%wk2%"
netsh interface set interface "%wk1%" disabled
netsh interface set interface "%wk2%" disabled
goto MENU
:cmd4
echo 启用网卡"%wk1%"启用网卡"%wk2%"
netsh interface set interface "%wk1%" enabled
netsh interface set interface "%wk2%" enabled
goto MENU
程序1就完成了,原理上是可以N网卡切换,用不上,就不写那么多了。主要是这代码也比较冗余,但是让gpt给改的话,改完看着很精简,但是不能用。高手拿去继续改把
程序2号,一键切换网卡2的状态。因为单位的双网卡,是一个有线网卡一个无线网卡。
这样的话,只要启用有线网卡,windows默认有线网卡优先级高,就优先连有线网卡。
@echo off
chcp 65001
setlocal enabledelayedexpansion
rem 获取网卡信息
set mac_list=
for /f "tokens=1-3 delims=," %%a in ('Getmac /v /nh /fo csv') do (
if not defined wk1 (
set wk1="%%a"
set wn1="%%b"
set wz1=%%c
) else (
set wk2="%%a"
set wn2="%%b"
set wz2=%%c
goto :endloop
)
)
:endloop
echo %wk2%
echo %wn2%
echo %wz2%
echo. ============ B站你好我请客 瞎编的 =============
IF %wz2%=="Disabled" (
netsh interface set interface "%wk2%" enabled
) ELSE (
netsh interface set interface "%wk2%" disabled
)
echo 网卡2已经切换
PAUSE
这个程序默认禁用2网卡,如果你需要禁用1网卡,
只需要把endloop关键字往后所有的2都改成1.