我想要一个根据网卡状态启用/禁用网卡的快捷方式。我找到了如何使用 devcon、wmic 和 pnputil 来启用或禁用它,或者在这里找到了一些问答,它们建议使用包含条件代码的脚本,但它们都不适合我……我做到的最好的方法是在禁用时启用它,但脚本不会在启用时禁用它……
这是启用但不禁用的脚本之一:
@echo off
wmic path Win32_PnPEntity get FormFactor|find "2" >nul && goto :disable || goto :enable
goto :eof
:disable
wmic Path Win32_PnPEntity Where "Name='Realtek Gaming GbE Family Controller'" Call Disable
goto :eof
:enable
wmic Path Win32_PnPEntity Where "Name='Realtek Gaming GbE Family Controller'" Call enable
goto :eof
这是另一个
@echo off
for /f "tokens=3" %%a in ('devcon status *DEV_8168^|find "Device is"') do set "status=%%a"
echo status is %status%
IF "%status%" == "running" (
devcon disable *DEV_8168
) ELSE (
devcon enable *DEV_8168
)
最后一个给了我一种线索,当设备被禁用时,状态查询 echo %status% 返回“已禁用”,但当设备被启用时,它不返回任何内容,而是返回“正在运行”,我相信这才是它应该返回的
答案1
解决了。感谢 io-oi 的回复,我有一个可用的脚本
@echo off & setlocal
pushd %__AppDir__% && 2>nul =;(
reg.exe query HKCU\Environment /d /e /f on|find.exe /i "Click" >nul && =;(
netsh.exe interface set interface name="Ethernet" admin=Disabled
netsh.exe interface set interface name="WiFi" admin=Enabled
setx.exe Click off >nul & endlocal & goto :eof );= || =;(
netsh.exe interface set interface name="Ethernet" admin=Enabled
netsh.exe interface set interface name="WiFi" admin=Disabled
setx.exe Click on 1>nul & endlocal & goto :eof );= );=