|
■No95011 (魔界の仮面弁士 さん) に返信
> その検索条件には、IP アドレスの部分も含まれていますか? > > "(優先)" という文字列だけだと、下記のように > 複数のアダプターが列挙される可能性がありそうです。 > > > イーサネット アダプター ローカル エリア接続: > IPv4 アドレス . . . . . . . . . . . .: 10.12.34.56(優先) > > イーサネット アダプター vEthernet (Default Switch): > IPv4 アドレス . . . . . . . . . . . .: 172.16.78.90(優先) > リンクローカル IPv6 アドレス. . . . .: 2001:db8::2%22(優先) > > > >>for /f "tokens=1,2,*" %%a in ('ipconfig /all ^| find "イーサネット アダプター"') do ( > > wmic から得られないかな…と思ったのですが、IPAddress が配列を返すのが難点。 > (WQL は配列型に対するクエリをサポートしてない) > > wmic NIC where NetEnabled=TRUE get DeviceID, InterfaceIndex, NetConnectionID > wmic NICConfig where IPEnabled=TRUE get InterfaceIndex, IPAddress > > 配列を処理するために、PowerShell か VBScript を併用するか、 > 標準出力を文字列として切り出して判断するか…。 > > > >>ipconfig /all で表示される項目の中で 192.168.1.100(優先) > > IP アドレス固定の問い合わせパターン。 > > ========= > > REM @ECHO OFF > SET IP=192.168.1.100 > SET PSCMD="Get-CimInstance Win32_NetworkAdapter -Filter NetEnabled=TRUE | select -Property NetConnectionID, @{name='IP'; expression={(Get-CimAssociatedInstance -Association Win32_NetworkAdapterSetting $_).IPAddress}} |?{[Array]::IndexOf($_.IP,'%IP%') -ne -1}|%%{$_.NetConnectionID}" > FOR /F "USEBACKQ DELIMS=" %%A IN (`PowerShell.exe -Command %PSCMD%`) DO SET ADAPTER=%%A > ECHO [%ADAPTER%]
引用めちゃめちゃで申し訳ないです。ちょっといただいた意見を参考に考え直してみます。 魔界の仮面弁士さん、本当にいろいろ詳しいのですね。いつも助かっております。
|