![将文本文件中的 DNS 解析为 IP 地址](https://linux22.com/image/1467698/%E5%B0%86%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%20DNS%20%E8%A7%A3%E6%9E%90%E4%B8%BA%20IP%20%E5%9C%B0%E5%9D%80.png)
我目前能够使用下面显示的第一个命令从 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