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