批处理文件——在一行for /f中运行多个命令



我试图在windows命令行(或批处理文件)中为/f运行多个命令。下面是显示问题的简化代码:

for /f "usebackq tokens=*" %a IN (`echo a & echo b`) do echo %a

给出错误信息:

& was unexpected at this time.

下列各项都可以:

for /f "usebackq tokens=*" %a IN (`echo a`) do echo %a
for /f "usebackq tokens=*" %a IN (`echo b`) do echo %a
echo a & echo b

所以我的问题是,是否有可能像我在一个for/f循环中尝试做的那样,同时运行两个命令。

感谢您提供的帮助

您需要转义&,以便将其作为子表达式的一部分解析,而不是作为FOR的一部分。将&改为^&

for /f "usebackq tokens=*" %a IN (`echo a ^& echo b`) do echo %a

作为附带说明,这一行将在命令行中工作,但通常您打算将其放入批处理文件中。在批处理文件中,您还需要通过将%a更改为%%a将百分号加倍,如下所示:

for /f "usebackq tokens=*" %%a IN (`echo a ^& echo b`) do echo %%a

最新更新