我目前可以使用如下所示的第一個命令從 DNS 伺服器取得 IP 位址。然而,一次輸入一個 DNS 伺服器並執行命令會很乏味。我過去曾嘗試過運行它for /F %i in (dns.txt); do nslookup %i; > ips.txt;
並且它有效。但是,我嘗試將相同的概念應用於以下命令。如何從文字檔案解析 DNS 位址、轉換 IP 位址並將結果輸出到新的文字檔案?
僅適用於 1 個 DNS 到 IP 位址
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a > ips.txt
答案1
我猜是操作者的錯>
。這實際上會截斷文件,然後將輸出寫入文件ips.txt
,但您處於循環中並且每次都會截斷文件。嘗試>>
改為操作員。
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a >> ips.txt
編輯:要循環檔案並取得每個 DNS 主機的 IP 位址,您需要執行下列操作:
for /f "tokens=*" %%A in (yourhostsfile.txt) do nslookup %%A >> ips.txt