C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.95008 の関連記事表示

<< 0 >>
■95008  batでのネットワーク接続名取得について
□投稿者/ tetris -(2020/06/11(Thu) 12:00:38)

    分類:[Windows 全般] 

    windows10での動作、batファイルに関しての質問です。
    希望としましては以下のようなbatファイルを作成したいと考えています。
    ・実行すると使用中のネットワークアダプタ名を取得して、変数に格納する。
    ・有線接続であっても、無線接続であっても結果を取得したい。

    以下は、現段階でのプログラムです。これですと、無線対応はしておらず、ipconfigで得られる一番下の結果を取得しているだけになってしまいます。

    rem @echo off
    setlocal enabledelayedexpansion
    for /f "tokens=1,2,*" %%a in ('ipconfig /all ^| find "イーサネット アダプター"') do (
    set Network_Name=%%c
    )
    set Local_Network=!Network_Name:~0,-1!

    echo ネットワーク接続名は:%Local_Network%です
    pause

    デスクトップPCでの実行結果⇒ イーサネットアダプター  
    となってます。
    ノートパソコンでのWifiを使っている実行結果⇒Bruetoothアダプター (使用してすらいません)

    わかりづらい質問で申し訳ございませんが、ご教授頂ければと思います。宜しくお願い致します。
親記事 /過去ログ164より / 関連記事表示
削除チェック/

■95009  Re[1]: batでのネットワーク接続名取得について
□投稿者/ 魔界の仮面弁士 -(2020/06/11(Thu) 12:20:40)
    No95008 (tetris さん) に返信
    > ・実行すると使用中のネットワークアダプタ名を取得して、変数に格納する。
    > ・有線接続であっても、無線接続であっても結果を取得したい。

    複数のネットワークアダプター(仮想的な物も含む)が同時に有効になることが
    ありえるわけですが、その場合はどうするのでしょうか。

    それぞれに優先順位を付けておき、優先順位の高いものを格納したいとか、
    あるいはすべてを列挙するために文字列連結して格納しておきたいとか。


    > ipconfigで得られる一番下の結果を取得しているだけになってしまいます。
    > ノートパソコンでのWifiを使っている実行結果⇒Bruetoothアダプター (使用してすらいません)
    × Bruetooth
    ○ Bluetooth

    使用していなくても無効化されていないのなら列挙はされるでしょうから、
    IF 等で「Bluetooth だったら SET しない」条件を加えるとか。
記事No.95008 のレス /過去ログ164より / 関連記事表示
削除チェック/

■95010  Re[2]: batでのネットワーク接続名取得について
□投稿者/ tetris -(2020/06/11(Thu) 13:10:59)
    2020/06/11(Thu) 13:11:25 編集(投稿者)

    No95009 (魔界の仮面弁士 さん) に返信

    > 複数のネットワークアダプター(仮想的な物も含む)が同時に有効になることが
    > ありえるわけですが、その場合はどうするのでしょうか。
    ipconfig /all で表示される項目の中で 192.168.1.100(優先)
    この優先が含まれるネットワークアダプターを取得できたらと思っております。
    この条件を書くのを忘れていました。この優先がつくのは1つの接続名しかないはずなので・・・。

    > × Bruetooth
    > ○ Bluetooth
    誤字のご指摘ありがとうございます。

記事No.95008 のレス /過去ログ164より / 関連記事表示
削除チェック/

■95011  Re[3]: batでのネットワーク接続名取得について
□投稿者/ 魔界の仮面弁士 -(2020/06/11(Thu) 16:27:05)
    No95010 (tetris さん) に返信
    > ipconfig /all で表示される項目の中で 192.168.1.100(優先)
    > この優先が含まれるネットワークアダプターを取得できたらと思っております。
    
    その検索条件には、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%]
記事No.95008 のレス /過去ログ164より / 関連記事表示
削除チェック/

■95012  Re[4]: batでのネットワーク接続名取得について
□投稿者/ tetris -(2020/06/11(Thu) 16:38:39)
    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%]


    引用めちゃめちゃで申し訳ないです。ちょっといただいた意見を参考に考え直してみます。
    魔界の仮面弁士さん、本当にいろいろ詳しいのですね。いつも助かっております。
記事No.95008 のレス / END /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -