尝试直接从命令提示符运行以下命令。
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 问题以获取更多信息:批处理文件参数中的百分号(%和%%)是什么意思?