0

当计算机从睡眠中唤醒时,我的 USB 网络适配器(最新驱动程序)从控制面板的“网络连接”窗口中消失。因此,使用 devcon 构建批处理文件以重置适配器。适配器重置后,我想使用 netsh 以编程方式添加一些 IP 子网。问题是适配器在执行重置(禁用 && 启用命令)后可能需​​要一些时间,因为 netsh 如果早于某个时间(比如说 6 秒,使用旧的 Atom CPU)启动会失败。现在我使用“timeout /T”命令插入了超时,但这个时间可能因系统负载而异。问题是:有没有办法从批处理文件中以编程方式检测适配器状态?

set "netcmd=netsh in ip add address ETH1 192.168.0.100 255.255.255.0"
devcon disable "USB\VID_9710&PID_7830" >NUL 
devcon enable "USB\VID_9710&PID_7830" >NUL 
timeout /T 6 >NUL
%netcmd%
4

1 回答 1

1

netsh interface show interface name="Local Area Connection"显示类似:

Local Area Connection
   Type:                 Dedicated
   Administrative state: Enabled
   Connect state:        Disconnected

您可以通过以下方式检查其状态:

:loop
timeout 2
echo still waiting...
netsh interface show interface name="Local Area Connection" | find "Connect state" |find "Connected" >nul || goto :loop
echo Interface is now connected.

也可以这样做...find "Administrative state" |find "Enabled" ...(取决于您所指的适配器状态)

注意:更改Local Area Connection为适配器的名称

于 2017-12-26T17:41:38.770 回答