我查看并发现下面这行代码运行正常,但在批处理文件中运行时什么也没有发生。
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 %%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