Batch Script: Nach Punkten in einer Zeile filtern
Hi Leute,
hab von der Arbeit die Aufgabe bekommen alle Rechner im Netz anzupingen und deren Hostnamen herauszufinden und diesen dann in einer Textdatei zu speichern. Den Hostnamen ermittle ich über den Befehl nslookup mithilfe einer For-Schleife. (konkreter: For /f "token=*" %%a in (nslookup 192.168.1.154 | findstr Name) do set variable %%a). Als Namen gibt er mir dann die ganze Zeile aus, was auch kein Problem ist, jedoch brauch ich nur den Hostnamen. Ich habe mir das so gedacht, dass er in der Zeile bis zu dem ersten "." nach dem Hostnamen sucht und den restlichen Teil dann nicht mehr mit anzeigt. Wäre echt cool wenn ihr mir da weiterhelfen könntet.
PS: es sollte nicht durch "suchen und ersetzen" gelöst werden.
hab von der Arbeit die Aufgabe bekommen alle Rechner im Netz anzupingen und deren Hostnamen herauszufinden und diesen dann in einer Textdatei zu speichern. Den Hostnamen ermittle ich über den Befehl nslookup mithilfe einer For-Schleife. (konkreter: For /f "token=*" %%a in (nslookup 192.168.1.154 | findstr Name) do set variable %%a). Als Namen gibt er mir dann die ganze Zeile aus, was auch kein Problem ist, jedoch brauch ich nur den Hostnamen. Ich habe mir das so gedacht, dass er in der Zeile bis zu dem ersten "." nach dem Hostnamen sucht und den restlichen Teil dann nicht mehr mit anzeigt. Wäre echt cool wenn ihr mir da weiterhelfen könntet.
PS: es sollte nicht durch "suchen und ersetzen" gelöst werden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 350365
Url: https://administrator.de/contentid/350365
Ausgedruckt am: 23.11.2024 um 10:11 Uhr
3 Kommentare
Neuester Kommentar
Moin Dave623,
meinst du so wie im schnellen Beispiel am CMD-Prompt?
Ich habe den nslookup jetzt auf localhost statt auf 192.168.1.154 gemacht und die vollständige Rückgabe wäre "localhost.xxx.yyy.zzz"
Davon den Namensteil bis zum ersten "." wäre "localhost"
Oder willst du es so?
Grüße
Biber
meinst du so wie im schnellen Beispiel am CMD-Prompt?
C:\Users\Biber>for /f "tokens=2 delims=. " %i in ('nslookup localhost^|find "Name:"') do @echo %i
localhost
Ich habe den nslookup jetzt auf localhost statt auf 192.168.1.154 gemacht und die vollständige Rückgabe wäre "localhost.xxx.yyy.zzz"
Davon den Namensteil bis zum ersten "." wäre "localhost"
Oder willst du es so?
C:\Users\Biber>for /f "tokens=1 delims=." %i in ('nslookup localhost^|find "Name:"') do @echo %i
Name: localhost
Grüße
Biber