Как обнаружить сетевой интерфейс "инициализирован"
Мой сетевой USB-адаптер (последние версии драйверов) исчезают из окна "Сетевые подключения" на панели управления, когда компьютер выходит из спящего режима. Поэтому создайте командный файл для сброса адаптера с помощью devcon. После сброса адаптера я хочу добавить некоторые IP-подсети программно, используя netsh. Проблема в том, что адаптеру, вероятно, понадобится некоторое время после сброса (команды disable && enable), потому что netsh не удалось, если он был запущен раньше, чем некоторое (скажем, 6 секунд, используется старый процессор Atom). Теперь я вставил тайм-аут с помощью команды "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%
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
на имя вашего адаптера