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-Key: 350365

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

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

Member: SeaStorm
SeaStorm Sep 29, 2017 at 09:19:26 (UTC)
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
Member: Biber
Solution Biber Sep 29, 2017 updated at 10:34:11 (UTC)
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
Member: Dave623
Dave623 Sep 29, 2017 at 15:49:38 (UTC)
Goto Top
Hi Biber,

genau danach habe ich gesucht. Vielen Dank!