dave623
Goto Top

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.

Content-ID: 350365

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

Ausgedruckt am: 23.11.2024 um 10:11 Uhr

SeaStorm
SeaStorm 29.09.2017 um 11:19:26 Uhr
Goto Top
Hi

guck dir mal Powershell an. Damit kannst du das spielend und vor allem sauber lösen, ohne so ein gefrickel mit im Text von bis suchen
Biber
Lösung Biber 29.09.2017 aktualisiert um 12:34:11 Uhr
Goto Top
Moin Dave623,

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
Dave623
Dave623 29.09.2017 um 17:49:38 Uhr
Goto Top
Hi Biber,

genau danach habe ich gesucht. Vielen Dank!