抑制批处理文件中 nslookup 命令的输出

抑制批处理文件中 nslookup 命令的输出

尝试清理我的批处理文件...使用以下命令时出现问题,但仍然打印出一些信息:

FOR /F "tokens=2" %%a in ('nslookup myip.opendns.com resolver1.opendns.com') do (set PublicIP=%%a)

它不断输出:

Non-authoritative answer:

我尝试了以下方法,但都没有用......

>NUL
>NUL 2>1

(还有一些我忘记了)

答案1

找到了解决方案,稍微改变了一些事情。

FOR /f "usebackq tokens=2,3" %%a in ('nslookup myip.opendns.com resolver1.opendns.com') do (set PublicIP=%%a)

答案2

我找到了一个可能对您有帮助的解决方案,在我的情况下我需要它,这样我就可以获得我的公共 IP 而无需非权威答案警报:

FOR /F "SKIP=4 TOKENS=2" %%a IN ('"NSLOOKUP myip.opendns.com resolver1.opendns.com 2>NUL"') DO ECHO %%a

请注意括号中的 ' 和 " 引号;)

经过两天的搜索后,我偶然发现了它,因为我读到了以下关于在批处理文件中的 for 循环中解析命令输出的解释:http://ss64.com/nt/for_f.html

相关内容