Hallo zusammen,
ich möchte den LAN-Verbindungsnamen als Bestandteil eines kleines Skripts auslesen, um entsprechend einen Wert zu setzten. Konkret möchte ich die DHCP-Option DHCP Class ID Information am Client zu setzen (ipconfig /setclassid "LAN-Verbindung2" MyID). Da ja bei jedem PC theoretisch die LAN-Verbindung anders heißten könnte, ab Win8 wäre es ja "Ethernet[2-X]" und bei Windows 7 eben "LAN-Verbindung[2-X]".
Mein Plan, per For-Schleife den ipconfig Wert auslesen und wenn ein entsprechender Werte eingelesen wird, der matcht, soll der Befehl mit dem Namen ausgeführt werden.
Aktuell bin ich soweit (ein paar Hilfseinträge zum Debuggen sind noch drin)
Da Problem, der Anfangswert von %%a nach dem ersten Durchlauf ist "LAN-Verbindung:". Jetzt wollte ich den Wert einer anderen Variablen übergeben und dort das letzte Zeichen eliminieren, aber innerhalb der FOR-Schleife wird kein SET Befehl angenommen, egal welche Syntax ich teste.
Ich habe das ganze testweise mal reudziert, um den Fehler einzugrenzen und direkt in der CMD ausgeführt. Aber schon hier wird der Variablen stets nur als Wert "." übergeben:
Schon mal Danke!
(PS: Ich bin nicht der fitteste im Batch schreiben, aber meistens kriege ich irgendwann hin was ich will.)
ich möchte den LAN-Verbindungsnamen als Bestandteil eines kleines Skripts auslesen, um entsprechend einen Wert zu setzten. Konkret möchte ich die DHCP-Option DHCP Class ID Information am Client zu setzen (ipconfig /setclassid "LAN-Verbindung2" MyID). Da ja bei jedem PC theoretisch die LAN-Verbindung anders heißten könnte, ab Win8 wäre es ja "Ethernet[2-X]" und bei Windows 7 eben "LAN-Verbindung[2-X]".
Mein Plan, per For-Schleife den ipconfig Wert auslesen und wenn ein entsprechender Werte eingelesen wird, der matcht, soll der Befehl mit dem Namen ausgeführt werden.
Aktuell bin ich soweit (ein paar Hilfseinträge zum Debuggen sind noch drin)
Code:
FOR /F "usebackq tokens=2" %%a IN (`ipconfig`) DO (
del c:\tmp.txt
ECHO %%a
SET linkname=%%a
echo %linkname%
ECHO %linkname% > c:\tmp.txt
findstr "LAN-Verbindung" c:\tmp.txt && set ipconfig /setclassid "%linkname%" MyID
findstr "Ethernet" c:\tmp.txt && set ipconfig /setclassid "%linkname%" MyID
)
Da Problem, der Anfangswert von %%a nach dem ersten Durchlauf ist "LAN-Verbindung:". Jetzt wollte ich den Wert einer anderen Variablen übergeben und dort das letzte Zeichen eliminieren, aber innerhalb der FOR-Schleife wird kein SET Befehl angenommen, egal welche Syntax ich teste.
Ich habe das ganze testweise mal reudziert, um den Fehler einzugrenzen und direkt in der CMD ausgeführt. Aber schon hier wird der Variablen stets nur als Wert "." übergeben:
Code:
C:\Windows\system32>FOR /F "usebackq tokens=2" %a IN (`ipconfig`) DO (ECHO %a & set link=%a & ECHO %link%)
C:\Windows\system32>(ECHO LAN-Verbindung: & set link=LAN-Verbindung: & ECHO . )
LAN-Verbindung:
.
C:\Windows\system32>(ECHO DNS-Suffix: & set link=DNS-Suffix: & ECHO . )
DNS-Suffix:
......
Schon mal Danke!
(PS: Ich bin nicht der fitteste im Batch schreiben, aber meistens kriege ich irgendwann hin was ich will.)
Zuletzt bearbeitet: