2017-12-26 4 views
0

コンピュータがスリープ状態から復帰すると、コントロールパネルの[ネットワーク接続]ウィンドウからUSBネットワークアダプタ(最新ドライバ)が消えます。したがって、devconを使用してアダプタをリセットするバッチファイルを構築してください。アダプタをリセットした後、netshを使用してプログラムによってIPサブネットを追加します。いくつかの(6秒、古いAtom CPUが使用されている)時間よりも早く開始された場合、netshが失敗したため、リセット後にアダプターがおそらく時間がかかる可能性があります(& & enableコマンド)。今私は 'タイムアウト/ 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% 
+0

netsh interface show interface name = Ethernetはあなたが探しているものを提供しますか? (イーサネットをあなたのインターフェイスの名前に変更してください) – Stephan

+1

潜在的なレスポンダーがバッチファイルの内容をあなたの質問に追加するのに役立ちます。その[あなたの質問を編集する](https://stackoverflow.com/posts/47979520/edit)のコンテンツを貼り付け、[** {} **]ボタンを押してコードとしてフォーマットします。 – Compo

+0

@ user2956477、FYI、 'timeout/t N'は返す前に少なくともN秒待つでしょう。おそらく、システムの負荷に応じて少し長くなります。 – jwdonahue

答えて

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をアダプタ名に変更してください。

関連する問題