如何查找公共 IP 地址并将 IP 地址仅写入文本文件?

如何查找公共 IP 地址并将 IP 地址仅写入文本文件?

我查看并发现下面这行代码运行正常,但在批处理文件中运行时什么也没有发生。

for /f "skip=4 usebackq tokens=2" %a in (`nslookup microsoft.com 8.8.8.8`) do echo %a > C:\ip.txt

有人可以告诉我吗,显然我对脚本编写很陌生,但我正在尝试。

答案1

您将需要在 .bat 文件中输入双倍的 %,顺便说一句,您可能想要>>(将每个结果添加到文件中)而不是>(用最后一个结果覆盖文件)

答案2

在批处理文件中运行时什么也没有发生。

应该收到如下错误信息:

C:\test>cat foo.cmd
for /f "skip=4 usebackq tokens=2" %a in (`nslookup microsoft.com 8.8.8.8`) do echo %a > ip.txt
C:\test>foo
a was unexpected at this time.

C:\test>for /f "skip=4 usebackq tokens=2" a > ip.txt

此错误是因为您需要在批处理文件中使用%%而不是。%

参考FOR——有条件地执行命令几次。

语法-FOR-文件

FOR %%parameter IN (set) DO command

...

FOR参数

第一个参数必须使用单个字符来定义,例如字母G

FOR %%G IN...

如果您在命令行而不是批处理程序中使用该FOR命令,则只需使用一个百分号:%G而不是%%G

因此,就您而言,如果您想for在批处理(cmd)文件中使用该命令,则每个命令都%需要替换%%如下:

for /f "skip=4 usebackq tokens=2" %%a in (`nslookup microsoft.com 8.8.8.8`) do echo %%a > C:\ip.txt

相关内容