Ich kann derzeit mit dem unten gezeigten ersten Befehl eine IP-Adresse von einem DNS-Server abrufen. Es ist jedoch mühsam, jeweils einen DNS-Server einzugeben und den Befehl auszuführen. Ich habe in der Vergangenheit versucht, dies auszuführen, for /F %i in (dns.txt); do nslookup %i; > ips.txt;
und es funktioniert. Ich versuche jedoch, dasselbe Konzept auf den folgenden Befehl anzuwenden. Wie kann ich eine DNS-Adresse aus einer Textdatei auflösen, IP-Adressen konvertieren und das Ergebnis in einer neuen Textdatei ausgeben?
Funktioniert nur für 1 DNS zu IP-Adresse
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a > ips.txt
Antwort1
Ich vermute, der Fehler liegt beim >
Operator. Dieser kürzt die Datei tatsächlich und schreibt die Ausgabe dann in die ips.txt
Datei, aber Sie befinden sich in einer Schleife und kürzen die Datei jedes Mal. Versuchen Sie es >>
stattdessen mit dem Operator.
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a >> ips.txt
BEARBEITEN: Um eine Datei zu durchlaufen und die IP-Adresse jedes DNS-Hosts abzurufen, gehen Sie folgendermaßen vor:
for /f "tokens=*" %%A in (yourhostsfile.txt) do nslookup %%A >> ips.txt