Verwenden Sie einen zweiten Stack For /f
, um die Ausgabe von nslookup zu parsen und die ersten drei Zeilen zu überspringen:
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion For /f "tokens=*" %%A in ( servers.txt ) Do For /f "Skip=3 Tokens=1* Delims=: " %%B in ( 'nslookup %%A' ) Do Echo %%B=%%C
Beispielausgabe
Name=Matar.fritz.box Addresses=2003:dc:73c5:7800::0 =192.168.3.92
Abhängig von Ihrem Setup kann nslookup mehr als eine IP zurückgeben, sogar IPv6-Adressen. Für IPv4 mit Ping könnte es also einfacher sein:
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion For /f "tokens=*" %%A in ( servers.txt ) Do For /f "tokens=2Delims=[]" %%B in ( 'Ping -4 -n 1 %%A ^|find "["' ) Do Echo IPv4=%%B
IPv4=192.168.192.92