Mit Findstr Hostname aus IPconfig suchen und als Variable zur Verzeichniserstellung nutzen
Hallo.
Ich habe eine Frage zu folgender DOS-Batch-Zeile:
Ergebnis:
Hostname . . . . . . . . . . . . : Lap40-PC-Win7
Wie muss ich den Code verändern, um NUR den tatsächlichen Hostnamen zu erhalten? Also, wie schneide ich den Rest vor dem "L" (in diesem Fall) ab?
Ich brauche nur "Lap40-PC-Win7" (kann natürlich auch anders lauten).
Anschließend möchte ich diesen Wert als Varaible nutzen, um z.B. ein Unterverzeichnis anlegen zu können.
Geht das überhaupt? Bin da nicht so firm.
Sekunderes Problem:
Um es auf die Spitze zu treiben, würde ich die Zeile evtl. auch gerne auf die IP des PCs anwenden.
Allerdings habe ich verschiedene alte und neue Systeme (W95-W7), und ich kann nur nach dem Begriff "IP" filtern.
Dann kommen bei den neueren PCs alle Adaptereinstellungen. Ich brauche aber nur die des Lan-Adapters.
Aber das ist nicht wichtig.
Ich habe mich im Forum ein wenig umgeschaut, weiss aber nicht so recht, wonach ich suchen soll.
Vielleicht kann mir jemand helfen.
Danke.
mfg
Ich habe eine Frage zu folgender DOS-Batch-Zeile:
ipconfig /all |findstr "Hostname"
Ergebnis:
Hostname . . . . . . . . . . . . : Lap40-PC-Win7
Wie muss ich den Code verändern, um NUR den tatsächlichen Hostnamen zu erhalten? Also, wie schneide ich den Rest vor dem "L" (in diesem Fall) ab?
Ich brauche nur "Lap40-PC-Win7" (kann natürlich auch anders lauten).
Anschließend möchte ich diesen Wert als Varaible nutzen, um z.B. ein Unterverzeichnis anlegen zu können.
Geht das überhaupt? Bin da nicht so firm.
Sekunderes Problem:
Um es auf die Spitze zu treiben, würde ich die Zeile evtl. auch gerne auf die IP des PCs anwenden.
Allerdings habe ich verschiedene alte und neue Systeme (W95-W7), und ich kann nur nach dem Begriff "IP" filtern.
Dann kommen bei den neueren PCs alle Adaptereinstellungen. Ich brauche aber nur die des Lan-Adapters.
Aber das ist nicht wichtig.
Ich habe mich im Forum ein wenig umgeschaut, weiss aber nicht so recht, wonach ich suchen soll.
Vielleicht kann mir jemand helfen.
Danke.
mfg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 170614
Url: https://administrator.de/forum/mit-findstr-hostname-aus-ipconfig-suchen-und-als-variable-zur-verzeichniserstellung-nutzen-170614.html
Ausgedruckt am: 22.04.2025 um 06:04 Uhr
15 Kommentare
Neuester Kommentar
Hallo Lox0805!
Etwa so:
Anlegen des Verzeichnisses:
Mit "
Grüße
bastla
Etwa so:
for /f "tokens=15" %%i in ('ipconfig /all ^|findstr "Hostname"') do set "Host=%%i"
if defined Host (
md "D:\Verzeichnis in welches das Unterverzeichnis soll\%Host%"
) else (
echo Hostname nicht gefunden
)
if defined
" wird vorweg kontrolliert, ob auch tatsächlich eine Variable %Host% existiert.Grüße
bastla
@Xaero1982

Aber ok:
Um die (erste) IP-Adresse der (ersten) "LAN-Verbindung" zu finden könnte das so gehen:
Grüße
bastla
warum du nicht einfach: %computername% oder hostname verwendest?
Wo bleibt denn da der Spaß? Aber ok:
for /f "delims=" %%i in ('hostname') do set "Host=%%i"
@echo off & setlocal
set "Adapter=LAN-Verbindung"
set "IP=" & set "GetIt="
for /f "delims=" %%i in ('ipconfig /all') do call :ProcessLine "%%i"
if defined IP echo IP: %IP%
goto :eof
:ProcessLine
echo %1|findstr "%Adapter%">nul && (
set "GetIt=True"
goto :eof
)
if not defined GetIt goto :eof
echo %1|findstr "IP-Adr">nul && for /f "tokens=14" %%i in (%1) do if not defined IP set "IP=%%i"
goto :eof
bastla
Stimmt! Aber computername ist richtig! Der sollte aber gehen...
echo %computername% sollte funktionieren ...
Du kannst Dir die ganzen Variablen anzeigen lassen in dem du am Prompt set eingibst. Da sollte dann auch der Computername erscheinen ...
Hostname habe ich noch nie benutzt - wusste gar nicht das es existiert! Me culpa ...
echo %computername% sollte funktionieren ...
Du kannst Dir die ganzen Variablen anzeigen lassen in dem du am Prompt set eingibst. Da sollte dann auch der Computername erscheinen ...
Hostname habe ich noch nie benutzt - wusste gar nicht das es existiert! Me culpa ...
Hallo Lox0805!
Du kannst auch die "
eingeben (unter XP SP3 passt's bei mir mit 14) ...
Grüße
bastla
Der Code arbeitet zwar, aber ich bekomme nur eine leere Zeile raus.
Zur Fehlersuche: Wenn Du aus "echo off
" ein "echo on
" machst, wird jeder Befehl vor der Ausführung angezeigt.Du kannst auch die "
tokens
" (jedes Leerzeichen gilt als Trennzeichen) nachzählen (oder einfach die Zahl 14 variieren), um ev die Auswertung des "ipconfig /all
" anzupassen - zum Testen direkt an der Kommandozeilefor /f "tokens=14" %i in ('ipconfig /all ^|findstr "IP-Adr"') do @echo %i
Grüße
bastla
Zitat von @Lox0805:
Hallo.
a) Bis dato kannte ich den Befehl nicht. Danke.
b) Unter Win95 gibt es den Befehl nicht.
c) Leider hab ich grad festgestellt, das es ipconfig unter Win95 auch nicht gibt..... *arghh* MIST
Trotzdem Danke für den Hinweis.
Hallo.
a) Bis dato kannte ich den Befehl nicht. Danke.
b) Unter Win95 gibt es den Befehl nicht.
c) Leider hab ich grad festgestellt, das es ipconfig unter Win95 auch nicht gibt..... *arghh* MIST
Trotzdem Danke für den Hinweis.
Hi Lox0805
unter win95,98, ME heist, glaub ich, der Befehl winipcfg.exe, ist aber grafisch.
Gruss
holli
Zitat von @holli.zimmi:
> Zitat von @Lox0805:
> ----
> Hallo.
>
> a) Bis dato kannte ich den Befehl nicht. Danke.
>
> b) Unter Win95 gibt es den Befehl nicht.
>
> c) Leider hab ich grad festgestellt, das es ipconfig unter Win95 auch nicht gibt..... *arghh* MIST
>
> Trotzdem Danke für den Hinweis.
Hi Lox0805
unter win95,98, ME heist, glaub ich, der Befehl winipcfg.exe, ist aber grafisch.
Gruss
holli
Mhh ...> Zitat von @Lox0805:
> ----
> Hallo.
>
> a) Bis dato kannte ich den Befehl nicht. Danke.
>
> b) Unter Win95 gibt es den Befehl nicht.
>
> c) Leider hab ich grad festgestellt, das es ipconfig unter Win95 auch nicht gibt..... *arghh* MIST
>
> Trotzdem Danke für den Hinweis.
Hi Lox0805
unter win95,98, ME heist, glaub ich, der Befehl winipcfg.exe, ist aber grafisch.
Gruss
holli
> Zitat von @Lox0805:
> ----
>Leider hab ich den Befehl ipconfig unter Win95 nicht zur Verfügung. Da hieß das noch "winipcfg" und ist ein grafisches Programm. Leider grad erst festgestellt.
>
> ----
>Leider hab ich den Befehl ipconfig unter Win95 nicht zur Verfügung. Da hieß das noch "winipcfg" und ist ein grafisches Programm. Leider grad erst festgestellt.
>
VG
Hallo Lox0805!
Da die Ausgabe von "
Zum Batch oben:
Damit bei mehreren Netzwerkkarten die IP der (ersten) "LAN-Verbindung" verwendet wird, muss die Ausgabe zeilenweise gelesen werden und erst, wenn die Zeile zB "Ethernetadapter LAN-Verbindung:" gefunden wurde, wird die Schalter-Variable "%GetIt%" gesetzt. Nur bei gesetzter Variable erfolgt dann die Auswertung, und nur, wenn noch keine Variable "%IP%" gefunden wurde ("
Grüße
bastla
Da die Ausgabe von "
arp -a
" anders aufgebaut ist als jene eines "ipconfig
", muss natürlich auch der Batch angepasst werden - eigentlich genügt dafür dann schon:@echo off & setlocal
cls
set "Adapter=Schnittstelle"
set "IP="
for /f "tokens=2" %%i in ('arp -a^|findstr "%Adapter%"') do set "IP=%%i"
if defined IP echo IP: %IP%
Damit bei mehreren Netzwerkkarten die IP der (ersten) "LAN-Verbindung" verwendet wird, muss die Ausgabe zeilenweise gelesen werden und erst, wenn die Zeile zB "Ethernetadapter LAN-Verbindung:" gefunden wurde, wird die Schalter-Variable "%GetIt%" gesetzt. Nur bei gesetzter Variable erfolgt dann die Auswertung, und nur, wenn noch keine Variable "%IP%" gefunden wurde ("
if not defined IP
") - damit ist sicher gestellt, dass der (erste) Wert der ersten "LAN-Verbindung" verwendet wird (anderenfalls würde dieser Wert durch nachfolgende Werte, etwa einer zweiten "LAN-Verbindung", überschrieben).Grüße
bastla