tobias3355
Goto Top

Schnittstellenname per batch auslesen und in eine variable schreiben

ich habe dazu im netz folgenden ansatz gefunden

netsh interface show interface | findstr "Dediziert" >%temp%\netsh.tmp
for /F "tokens=1,2,3* delims= " %%i in (%temp%\netsh.tmp) do set lan=%%k
del %temp%\netsh.tmp

leider gibt mir

echo %lan%

nicht wie gewünscht ethernet 6 sondern dediziert aus.

was mache ich falsch??

danke und grüße

Content-Key: 386072

Url: https://administrator.de/contentid/386072

Printed on: April 23, 2024 at 12:04 o'clock

Member: Pjordorf
Pjordorf Sep 11, 2018 updated at 08:45:54 (UTC)
Goto Top
Hallo,

Zitat von @tobias3355:
was mache ich falsch??
Nimm anstelle deines %k(%%k) doch mal %l(%%l).

Gruß,
Peter
Member: tobias3355
tobias3355 Sep 11, 2018 at 08:42:51 (UTC)
Goto Top
dann bekomme ich eine fehlermeldung.
funktioniert das bei dir mit dem lan=%%I ??
Member: tobias3355
tobias3355 Sep 11, 2018 at 08:45:50 (UTC)
Goto Top
mein fehler!
es funktioniert. leider wird mir aber nur das wort "ethernet" angezeigt und
nicht der komplette name "ethernet 6". wie kann ich das "wort" 6 mit in die var schreiben lassen?
Member: tobias3355
tobias3355 Sep 11, 2018 at 08:56:09 (UTC)
Goto Top
schreibe ich tokens=4 wird "ethernet" in die var geschrieben.

bei tokens=5 wird "6" in die var geschrieben.

aber wie bekomme ich es hin, dass tokens 5 und 6 in die var geschrieben werden??
Member: Pjordorf
Pjordorf Sep 11, 2018 at 09:02:16 (UTC)
Goto Top
Hallo,

Zitat von @tobias3355:
nicht der komplette name "ethernet 6". wie kann ich das "wort" 6 mit in die var schreiben lassen?
set "lan=%%l"
kann dir helfen.

Gruß,
Peter
Member: tobias3355
tobias3355 Sep 11, 2018 at 09:04:29 (UTC)
Goto Top
ich habe nun folgendes probiert...

tokens=4%5
tokens=4,5
tokens=4 5

leider funktioniert das alles nicht.
Member: tobias3355
tobias3355 Sep 11, 2018 at 09:08:29 (UTC)
Goto Top
aber set "lan=%%l" habe ich doch geschrieben. das funktioniert soweit ja auch.
nun möchte ich noch die tokens 4 und 5 ausgeben lassen.

grüße
Mitglied: 137084
Solution 137084 Sep 11, 2018, updated at Sep 13, 2018 at 09:49:37 (UTC)
Goto Top
for /f "tokens=3,*" %%a in ('netsh int show int ^| findstr Dediziert') do @echo %%b  
Mach das vernünftig und vor allem zuverlässig mit WMI, netsh ist ein Auslaufmodell
for /f "tokens=2 delims==" %%a in ('wmic nic where NetEnabled^=True get NetConnectionId /value') do @echo %%a  
Oder auch mit der Powershell
[System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces() | ?{$_.OperationalStatus -eq 'Up' -and $_.NetworkinterfaceType -eq 'Ethernet'} | Select -ExpandProperty Name  
Dir sollte aber bewusst sein dass du mehrere Adapter als Ergebnis bekommst sollte der Rechner mehr wie eine aktive Karte haben!
Member: Pjordorf
Pjordorf Sep 11, 2018 at 09:14:55 (UTC)
Goto Top
Hallo,

Zitat von @tobias3355:
aber set "lan=%%l" habe ich doch geschrieben.
Wo, ich kann es nicht erkennen bzw. lesen.
for /F "tokens=1,2,3* delims= " %%i in (%temp%\netsh.tmp) do set "lan=%%l"
das funktioniert.

Gruß,
Peter
Member: tobias3355
tobias3355 Sep 11, 2018 at 09:24:41 (UTC)
Goto Top
da kennt sich jemand aus.
funktioniert nun alles wie gewünscht - top !!!


vielen dank.