从命令提示符运行时,FOR/DO 命令显示“此时意外”

从命令提示符运行时,FOR/DO 命令显示“此时意外”

尝试直接从命令提示符运行以下命令。

FOR /f "delims=[] tokens=2" %%a in ('ping %computername% -4 -n 1 ^| findstr "["') do (set ip=%%a)

虽然它可以在批处理文件中正常运行,但如果直接粘贴到命令提示符中运行,我会收到以下错误:

%%a was unexpected at this time.

我需要如何更改它才能直接从命令提示符工作而不需要批处理文件?

长篇故事要求:

我有一个基本要求,即提供可以通过复制/粘贴到命令提示符中运行的命令列表,而无需使用批处理文件(只需使用它,不是我的要求,而是给我的要求,不能改变)。我有一个稍后的命令,它会将 %ip% 回显到 .txt 文件。

答案1

在批处理文件中引用 For 循环变量时,您需要将百分号加倍(即%%a:),但如果您在提示符下直接运行命令时这样做,则不起作用。您需要将它们更改为单个百分号(%a)。

也许可以查看其他 SU 问题以获取更多信息:批处理文件参数中的百分号(%和%%)是什么意思?

相关内容