我目前能够使用下面显示的第一个命令从 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